話不多說(shuō)典蝌,直接上測(cè)試代碼(注意finalTask depends的順序 )
task taskA{
println("taskA start")
doFirst { println("taskA dofirst ") }
doLast { println("taskA doLast") }
println("taskA end")
}
task taskB{
println("taskB start")
doFirst { println("taskB dofirst ") }
doLast { println("taskB doLast") }
println("taskB end")
}
task finalTask(dependsOn: [taskB,taskA]){
println("finalTask start")
doFirst { println("finalTask dofirst ") }
doLast { println("finalTask doLast") }
println("finalTask end")
}
執(zhí)行g(shù)radlew finnalTask 輸出順序如下书幕。
taskA start
taskA end
taskB start
taskB end
finalTask start
finalTask end
taskA dofirst
taskA doLast
taskB dofirst
taskB doLast
finalTask dofirst
finalTask doLast
將finalTask的depensOn變成[taskA,taskB]之后埋同,發(fā)現(xiàn)執(zhí)行順序跟上面一樣涯保。
如果需要按順序執(zhí)行taskB,taskA,finalTask,需要將腳本調(diào)整如下
task taskA() {
println("taskA start")
doFirst { println("taskA dofirst ") }
doLast { println("taskA doLast") }
println("taskA end")
}
task taskB {
println("taskB start")
doFirst { println("taskB dofirst ") }
doLast { println("taskB doLast") }
println("taskB end")
}
task finalTask() {
println("finalTask start")
doFirst { println("finalTask dofirst ") }
doLast { println("finalTask doLast") }
println("finalTask end")
}
finalTask.dependsOn(taskA)
taskA.dependsOn(taskB)
這樣執(zhí)行順序就變成 先taskB后taskA 最后finalTask了:
taskA start
taskA end
taskB start
taskB end
finalTask start
finalTask end
taskB dofirst
taskB doLast
taskA dofirst
taskA doLast
finalTask dofirst
finalTask doLast