我已经将德特伊特添加到我的Gradle项目中。我的目的是只按需调用detekt,因为它会产生许多错误的结果。但是,默认情况下,detekt任务是活动的(并破坏构建)。我如何才能避免这种依赖?
我尝试过的:我添加了一个gradle.taskGraph.beforeTask块,它有条件地设置了enabled = false:
gradle.taskGraph.beforeTask {
val containsDetektTaskCall = gradle.startParameter.taskNames.contains("detekt")
if (name.startsWith("detekt") && !containsDetektTaskCall) {
logger.lifecycle("Skipping all 'detekt-plugin' tasks")
enabled = false
}
}我觉得这7行代码实际上有点不适合覆盖任务依赖关系。我希望得到一个通用的分级答案,以及一些特定的方法。
发布于 2019-11-28 01:51:51
有很多方法可以跳过这个任务。最简单的方法是为您的任务添加onlyIf条件。例如:
task detect {
doFirst {
println 'detect'
}
}
detect.onlyIf { project.hasProperty('runDetect') }只有当detect条件为真时,才会执行onlyIf任务。
./gradlew detect -PrunDetect请看这里的细节任务
https://stackoverflow.com/questions/59069898
复制相似问题