下载与安装
- 官方下载地址: https://gradle.org/gradle-download/
- 安装就是配置环境变量,增加GRADLE_HOME环境变量,值为gradle-2.12\bin所在目录
windows下直接在环境变量对话框中定义,类linux系统
export GRADE_HOME = xxxx/xxxx
export PATH=$PATH:$GRADLE_HOME/bin - 验证是否安装成功
- 来一个gradle的hello world
新建一个文件 build.gradle
task helloWorld{
task startSession << {
println 'Welcome to gradle world!'
}
3.times {
task "genGradle$it" << {
println 'genGradle rocks'
}
}
genGradle0.dependsOn startSession
genGradle2.dependsOn genGradle1, genGradle0
task groupGradles(dependsOn: genGradle2)
}
- 执行:gradle -q groupGradles
程序简单说明
- 这里的task和Ant的targets是对等的
- << 符号是doLast的alias,doFirst 和 doLast 可以多次执行调用。他们在开始或结束的 task 动作清单中添加动作。task 执行时,按动作列表的顺序执行的动作。操作符 << 仅仅是 doLast 的别名。
- -q是代表quiet模式,不生成构建编译过程的日志信息
其他技巧
- 列出项目中所有的task
gradle -q tasks --all
- 在执行时排除一个任务
gradle groupGradles -x genGradle0
- 任务名字采用缩写
gradle groupHello 等价于 gradle gH
gradle groupGradle0 等价于 gradle gG0
- 常用的命令行选项
-b 指定构建脚本名字,某人build.gradle
-i 执行时候输出详细日志信息
-q 减少构建出错时打印的日志信息
--help 打印出所有可用的命令行选项
- 以后台守护进行方式运行gradle
gradle groupGradles --daemon
看看灵活的Groovy例子
- 编写脚本build.gradle
task upper << {
println '---- Begin in upper ----'
String strSome = 'my_nAme'
println 'Original: ' + strSome
println 'Upper: ' + strSome.toUpperCase()
println '---- End in upper ----'
}
task hello(dependsOn: upper) << {
println " I'm dependsOn upper"
}
执行下 gradle -q hello
- 更多的脚本技巧请参考:
- 默认task设置
defaultTasks 'clean', 'run'
task upper << {
println '---- Begin in upper ----'
String strSome = 'my_nAme'
println 'Original: ' + strSome
println 'Upper: ' + strSome.toUpperCase()
println '---- End in upper ----'
}
task hello(dependsOn: upper) << {
println " I'm dependsOn upper"
}
task clean << {
println 'This is a default task clean '
}
task run << {
println 'This is a default task run '
}
执行 gradle -q 结果
- DAG配置
task destribution <<{
println "We build the zip with version = $version "
}
task release(dependsOn:'destribution') << {
println 'We release now ......'
}
gradle.taskGraph.whenReady{
taskGraph ->
if (taskGraph.hasTask(release)) {
version = '1.0'
}else{
version = '1.0-SNAPSHOT'
}
}
注意执行不同的TASK,输出结果是不一样的