我有3个gradle任务:第一,第二,第三。
task first {
doLast {
println "+++++first+++++"
}
}
task second {
doLast {
println "+++++second+++++"
}
}
task third(dependsOn :[second,first]) {
doLast {
println "+++++third+++++"
}
}在cmd中执行'gradle third‘,结果为
E:\android\GradleTest>gradle third
> Task :app:first
+++++first+++++
> Task :app:second
+++++second+++++
> Task :app:third
+++++third+++++dependsOn任务的顺序是第二,第一,但是为什么执行任务的顺序是“+first+”“+second+”?
发布于 2021-02-10 03:14:23
当像这样使用dependsOn声明Task Dependencies时,您并没有指定顺序;您只是说third依赖于one和two。Gradle然后可以查看构建中所有任务的依赖关系图,并决定所有任务的运行顺序。
如果您还在one和two之间存在依赖关系,则应该显式声明它。
您可以使用mustRunAfter和shouldRunAfter在task ordering中做更多微妙的事情,但这些只适用于特殊情况,而且很少是您想要的。只需关注依赖项,让Gradle来操心排序即可。
https://stackoverflow.com/questions/66112245
复制相似问题