我有 3 个渐进任务:A、B、C。B 取决于 A。C 依赖于 A。
如果在 A 中有一个 if 检查,我希望在 B 运行时为 true,在 C 运行时为 false。我该怎么做?
为清楚起见,真正的任务是:
war { // task A
webAppDirName = 'src/main/webapp'
if (flag) {
rootSpec.exclude("**/*.json")
rootSpec.exclude("**/*.xml")
}
}
ospackage { // task B
buildRpm {
dependsOn war
}
}
task localTomcat { // task C
dependsOn war
}
我尝试在doFirst操作中设置war.flag,war.ext.flag之前依赖On,但是什么都没有...
我找到了一个使用dependsOn链和mustRunAfter的解决方案。
法典:
task war4pkg {
doLast {
war.rootSpec.exclude("**/*.json")
war.rootSpec.exclude("**/*.xml")
}
}
war {
webAppDirName = 'src/main/webapp'
}
ospackage {
buildRpm {
dependsOn war4pkg, war # order doesn't matter
war.mustRunAfter war4pkg # order set here
}
}
task localTomcat {
dependsOn war # nothing here.
}