仅在不运行检查任务的情况下,Detekt任务才会失败

时间:2019-09-03 18:29:10

标签: gradle android-gradle-plugin detekt

我正在将detekt从1.0.0.RC7-2迁移到1.0.1,并更改为使用新的插件语法。我设法使其正常运行,但仅在执行完整检查任务时有效。

如果仅执行detekt任务,则会显示错误。

检测任务失败,并显示以下错误:

Task :detekt FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':detekt'.
Could not resolve all files for configuration ':detekt'.
Cannot resolve external dependency io.gitlab.arturbosch.detekt:detekt-cli:1.0.1 because no repositories are defined.
Required by:
     project :

detekt.gradle

apply plugin: 'io.gitlab.arturbosch.detekt'

detekt {
    config = files("$rootDir/detekt/detekt-ruleset.yml")
    filters = ".*build.*,.*/resources/.*,.*/tmp/.*"
    input = files("src/main/java", "src/test/java")
    reports {
        html.enabled = true
        xml.enabled = false
        txt.enabled = false
    }
}

build.gradle (项目):

buildscript {
    ext.kotlin_version = '1.3.50'
    repositories {
        jcenter()
        google()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:3.4.2'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
        classpath "io.gitlab.arturbosch.detekt:detekt-gradle-plugin:1.0.1"
    }
}

plugins {
     id "io.gitlab.arturbosch.detekt" version "1.0.1"
}

build.gradle (模块):

repositories {
    jcenter()
    google()
}

apply from: "$rootDir/detekt/detekt.gradle"

2 个答案:

答案 0 :(得分:0)

根据此issue在detekt存储库上提交的文件,您必须在根项目上而不是在应用程序模块上对其进行配置。

答案 1 :(得分:0)

我设法通过为Detekt创建任务而不使用插件来使其工作:

detekt.gradle

useWalletCredit

build.gradle (项目)

configurations {
    detekt
 }

dependencies {
    detekt "io.gitlab.arturbosch.detekt:detekt-cli:1.0.1"
}

task detekt(type: JavaExec) {
    main = "io.gitlab.arturbosch.detekt.cli.Main"
    classpath = configurations.detekt
    def input = "$rootDir"
    def config = "$rootDir/detekt/detekt-ruleset.yml"
    def exclude = ".*/resources/.*,.*/build/.*"
    def report = "html:${project.buildDir}/reports/detekt.html"
    def params = ['-i', input, '-c', config, '-ex', exclude, '-r', report]
    args(params)
}

check.dependsOn detekt