Gradle编译
为什么使用Gradle编译
我在书本上看到了基于Java的编译,脚本、编译器、注解等我觉得对于初学者来说有些复杂,我没有看下去,想到在平时的工作中使用的Gradle编译,自我感觉可以仔细了解下。Gradle是基于Groovy语言的编译脚本,Groovy不仅仅局限于编译java代码,还可以编译其他语言的代码,对于一个开发团队来说,这点非常重要。
Groovy 给 Java 开发人员提供了迄今为止最大的透明度. 其基本的符号和类型与 Java 是一样的,其封装结构和许多其他的地方也是如此。Groovy 在这基础上提供了更多的功能, 而且与 Java 有共同的基础。
以下根据W3Cschool的内容学习。(https://www.w3cschool.cn/gradle_user_guide/gradle_user_guide-s3k126h1.html)
安装Gradle
- 安装java jdk
- 下载一个任意版本的Gradle的zip包(http://services.gradle.org/distributions/)
- 解压缩
- 将Gradle的bin目录配置到系统路径中
- 在控制台运行 Gradle -v命令检查Gradle是否安装成功
构建脚本基础
Gradle 里的任何东西都是基于这两个基础概念:
projects ( 项目 )
tasks ( 任务 )
例1:
build.gradle
task hello{
doLast{
println 'Hello World!'
}
}
或
task hello << {
println 'Hello World!'
}
执行命令,这里的 -q 表示quiet 模式. 它不会生成 Gradle 的日志信息 (log messages)
>gradle -q hello
Hello World!
例2:
build.gradle
task upper{
String someString = 'Apple Dog'
println 'name = ' + someString
println 'UpperName = ' + someString.toUpperCase()
}
运行结果
>gradle -q upper
name = Apple Dog
UpperName = APPLE DOG
例3:
build.gradle
task count{
4.times {
print "$it "}
}
运行结果
>gradle -q count
0 1 2 3
例4:任务之间的依赖关系
build.gradle
task hello{
println 'Hello World!'
}
task intro(dependsOn: hello){
println 'I am Gradle'
}
运行结果
>gradle -q intro
Hello World!
I am Gradle
例5:动态创建任务
build.gradle
4.times {
counter ->
task "task$counter" << {
println "I am task number $counter"
}
}