Android Plugin DSL Reference 参考文档 :
如果 Gradle 任务 A 的执行 是在 Gradle 任务 B 执行的基础上的 , 那么可以将任务 B 设置为 任务 A 的依赖 ;
代码示例 : 将 sayHello 任务和 sayHello2 任务设置为 sayHello3 任务的依赖任务 , 如果要执行 sayHello3 任务 , 则需要先执行 sayHello 和 sayHello2 任务 ;
task sayHello {
doLast {
println 'sayHello'
}
}
task sayHello2 {
doLast {
println 'sayHello2'
}
}
task sayHello3 (dependsOn: [sayHello, sayHello2]) {
doLast {
println 'sayHello3'
}
}
执行
gradlew :app:sayHello3
命令 , 命令行输出内容如下 :
D:\002_Project\002_Android_Learn\Android_UI>gradlew :app:sayHello3
WARNING:: Please remove usages of `jcenter()` Maven repository from your build scripts and migrate your build to other Maven repositories.
This repository is deprecated and it will be shut down in the future.
See http://developer.android.com/r/tools/jcenter-end-of-service for more information.
Currently detected usages in: root project 'Android_UI', project ':app'
> Task :app:sayHello
sayHello
> Task :app:sayHello2
sayHello2
> Task :app:sayHello3
sayHello3
BUILD SUCCESSFUL in 1s
3 actionable tasks: 3 executed
① 默认执行顺序 : 如果一个 Gradle 任务依赖于多个任务 , 则通过 dependsOn: 参数设置其执行顺序 , 按照该参数列表中的元素顺序执行 ;
task sayHello3 (dependsOn: [sayHello, sayHello2]) {
doLast {
println 'sayHello3'
}
}
上述代码设置 , 先执行 sayHello 任务 , 再执行 sayHello2 任务 ;
② 调用 Task#dependsOn 函数 , 设置任务依赖 , 通过如下代码
sayHello2.dependsOn sayHello
可以将 sayHello 设置为 sayHello2 任务的依赖 , 执行时 先执行 sayHello 任务 , 然后执行 sayHello2 任务 ;