Collectives™ on Stack Overflow

Find centralized, trusted content and collaborate around the technologies you use most.

Learn more about Collectives

Teams

Q&A for work

Connect and share knowledge within a single location that is structured and easy to search.

Learn more about Teams

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"

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"
        

Thanks for contributing an answer to Stack Overflow!

  • Please be sure to answer the question. Provide details and share your research!

But avoid

  • Asking for help, clarification, or responding to other answers.
  • Making statements based on opinion; back them up with references or personal experience.

To learn more, see our tips on writing great answers.