假设本文末尾的build.gradle
。
如果我运行任务WorkA
或 WorkB
,我将得到:
> Task :preTask
PreTask
> Task :WorkB (or A)
WorkB (or A)
> Task :finishTask
FinishTask
但是,如果运行任务allWork
,前置任务和结束任务仅执行一次!该如何解决?
> Task :preTask
PreTask
> Task :WorkA
WorkA
> Task :WorkB
WorkB
> Task :finishTask
FinishTask
> Task :AllWork
Combined
build.gradle
task preTask {
doFirst {
println "PreTask"
}
}
task finishTask {
doFirst {
println "FinishTask"
}
}
task WorkA {
dependsOn preTask
mustRunAfter preTask
finalizedBy finishTask
doFirst {
println "WorkA"
}
}
task WorkB {
dependsOn preTask
mustRunAfter preTask
finalizedBy finishTask
doFirst {
println "WorkB"
}
}
task AllWork {
dependsOn WorkA
dependsOn WorkB
WorkB.mustRunAfter WorkA
doFirst {
println "Combined"
}
}