Mic*_*fel 5 gradle kotlin detekt gradle-kotlin-dsl
我已将Detekt添加到我的 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
}
}
Run Code Online (Sandbox Code Playgroud)
我感觉这 7 行代码只是为了覆盖一个任务依赖,确实有点多了。我希望得到一个一般的 Gradle 答案以及一些特定于 Detekt 的方法。
有很多方法可以跳过任务。最简单的方法是为您的任务添加onlyIf
条件。例如:
task detect {
doFirst {
println 'detect'
}
}
detect.onlyIf { project.hasProperty('runDetect') }
Run Code Online (Sandbox Code Playgroud)
detect
仅当条件为真时才会执行任务onlyIf
。
./gradlew detect -PrunDetect
Run Code Online (Sandbox Code Playgroud)
请查看此处了解详细信息https://docs.gradle.org/current/userguide/more_about_tasks.html#sec:skipping_tasks
归档时间: |
|
查看次数: |
3615 次 |
最近记录: |