Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Detekt task fails only if ran without check task

I'm migrating detekt from 1.0.0.RC7-2 to the 1.0.1 and changing to use the new plugin syntax. I managed to make it work, but only when the full check task is executed.

If only the detekt task is executed then an error is shown.

The detekt task is failing with the following error:

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 (project):

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 (module):

repositories {
    jcenter()
    google()
}

apply from: "$rootDir/detekt/detekt.gradle"
like image 731
Luciano Ferruzzi Avatar asked Jan 27 '26 01:01

Luciano Ferruzzi


1 Answers

I managed to make it work by creating a task for Detekt and not using the plugin:

detekt.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  

build.gradle (project)

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"
    }
}
like image 74
Luciano Ferruzzi Avatar answered Jan 30 '26 12:01

Luciano Ferruzzi



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!