首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在分级中禁用自动Detekt

在分级中禁用自动Detekt
EN

Stack Overflow用户
提问于 2019-11-27 12:08:07
回答 1查看 2K关注 0票数 4

我已经将德特伊特添加到我的Gradle项目中。我的目的是只按需调用detekt,因为它会产生许多错误的结果。但是,默认情况下,detekt任务是活动的(并破坏构建)。我如何才能避免这种依赖?

我尝试过的:我添加了一个gradle.taskGraph.beforeTask块,它有条件地设置了enabled = false

代码语言:javascript
复制
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行代码实际上有点不适合覆盖任务依赖关系。我希望得到一个通用的分级答案,以及一些特定的方法。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-11-28 01:51:51

有很多方法可以跳过这个任务。最简单的方法是为您的任务添加onlyIf条件。例如:

代码语言:javascript
复制
task detect {
    doFirst {
        println 'detect'
    }
}

detect.onlyIf { project.hasProperty('runDetect') }

只有当detect条件为真时,才会执行onlyIf任务。

代码语言:javascript
复制
./gradlew detect -PrunDetect

请看这里的细节任务

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59069898

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档