gradle task
1.task
1.新建文本build.gradle
2.cd到build.gradle的根目录
第一个构建脚本
task hello {
doLast {
println ‘Hello world!’
}
}
在命令行里, 进入脚本所在的文件夹然后输入 gradle -q hello 来执行构建脚本
第二个构建脚本,快捷闭包任务
task hello << {
println ‘Hello world!’
}
执行效果跟第一个一致。
构建脚本代码
task hello<<{
String str ="shuzhan"
String tar = str +" is a good gug".toUpperCase();
println tar
}
2.task dependsOn
第一个依赖脚本
task hello<<{
println"hello !!"
}
task world(dependsOn:hello)<<{
println"world !!"
}
第二个依赖脚本
task taskX(dependsOn:"taskY") << {
println"taskX"
}
task taskY << {
println"taskY"
}
taskX 到 taskY 的依赖在 taskY 被定义之前就已经声明了.
说明依赖不需要在被调用者前面声明,另外要注意“taskY”要加上双引号.
3.动态 task
4.times { counter ->
task"task$counter" << {
println"I'm task number $counter"
}
}
gradle -q task1 命令的输出
为动态任务添加依赖
4.times { counter ->
task"task$counter" << {
println"I'm task number $counter"
}
}
task0.dependsOn task1,task2
gradle -q task0 命令的输出
task加入行为
task hello << {
println ‘Hello Earth’
}
hello.doFirst {
println ‘Hello Venus’
}
hello.doLast {
println ‘Hello Mars’
}
hello << {
println ‘Hello Jupiter’
}
doFirst 和 doLast 可以被执行许多次. 他们分别可以在任务动作列表的开始和结束加入动作. 第四个操作符<<是doLast的别称
gradle -q hello 命令的输出
段标记法
$ 可以访问一个存在的任务
task hello << {
println ‘Hello world!’
}
hello.doLast {
println “Greetings from the $hello.name task." }
自定义属性
task myTask {
ext.s ="myValue"
}
task printTask<< {
println myTask.s
}
默认任务
defaultTasks ‘clean’, ‘run’
task clean << {
println ‘Default Cleaning!’
}
task run << {
println ‘Default Running!’
}
task other << {
println “I’m not a default task!”
}
gradle -q 命令的输出
动态配置
task distribution << {
println “We build the zip with version=$version" }
task release(dependsOn: ‘distribution’) << {
println ‘We release now’
}
gradle.taskGraph.whenReady {taskGraph ->
if (taskGraph.hasTask(release)) {
version = ‘1.0’
} else {
version = ‘1.0-SNAPSHOT’
}
}