我有两个独立的任务来切换复合构建:
task enableCompositeBuild {
group = 'Tools'
description = 'Enable composite build'
doLast {
new File(rootDir, ".composite-enable").createNewFile()
}
}
task disableCompositeBuild {
group = 'Tools'
description = 'Disable composite build'
doLast {
File file = file(".composite-enable")
if (file.exists()) {
file.delete()
}
}
}
我的任务是防止SNAPSHOT对发行版的依赖:
task checkDependsOnSNAPSHOT {
if (version.endsWith("SNAPSHOT"))
return;
project.configurations.compile.each {
if (it.toString().contains("SNAPSHOT"))
throw new Exception("Release build contains snapshot dependencies: " + it)
}
}
build.dependsOn 'checkDependsOnSNAPSHOT'
现在,我尝试在发布版本上提供禁用组合,但无法理解如何组织这些任务依赖项来实现。任务disableCompositeBuild
应该在第一个checkDependsOnSPANSHOT
条件之后的任务if
中执行,以防止第二个if
出现异常。