Ruth
Ruth

Reputation: 1110

Apply plugin configuration in init.gradle script

I want to install some packages locally for all my projects, e.g. dependency-analyse. But I need to actually configure the plugin - also in the init script.

initscript {
    repositories {
      jcenter()
    }
    dependencies {
      classpath "ca.cutterslade.gradle:gradle-dependency-analyze:1.3.0"
    }
}
allprojects {
  apply plugin: ca.cutterslade.gradle.analyze.AnalyzeDependenciesPlugin
}

This init script works fine and applies the plugin, but unfortunately, the default setting is that the plugin fails the build. I would like to just log a warning.

For that I need to add configs:

analyzeClassesDependencies {
  justWarn = true
}

analyzeTestClassesDependencies {
  justWarn = true
}

but when I try to add it in the init.gradle file:

initscript {
    repositories {
      jcenter()
    }
    dependencies {
      classpath "ca.cutterslade.gradle:gradle-dependency-analyze:1.3.0"
    }
}
allprojects {
  apply plugin: ca.cutterslade.gradle.analyze.AnalyzeDependenciesPlugin
  analyzeClassesDependencies {
    justWarn = true
  }

  analyzeTestClassesDependencies {
    justWarn = true
  }
}

I get an error:

FAILURE: Build failed with an exception.

* Where:
Initialization script '/Users/<my-user>/.gradle/init.gradle' line: 13

* What went wrong:
Could not find method analyzeClassesDependencies() for arguments [init_2y9p9if69e8553k9fsvzz4a28$_run_closure1$_closure2@3e17c37a] on root project 'my-project' of type org.gradle.api.Project.

Anybody an idea of how I can apply plugin configuration? I tried the gradle forum but didn't get any answer, so I hope to get some more help here :)

Upvotes: 3

Views: 3137

Answers (1)

M.Ricciuti
M.Ricciuti

Reputation: 12096

AnalyzeDependenciesPlugin will add different tasks depending on which plugin is applied to your project. For example analyzeClassesDependencies and analyzeTestClassesDependencies will be declared only when java plugin is applied (see how this plugin is implemented here : https://github.com/wfhartford/gradle-dependency-analyze/blob/master/src/main/groovy/ca/cutterslade/gradle/analyze/AnalyzeDependenciesPlugin.groovy )

So you just need to apply java plugin before you apply the AnalyzeDependenciesPlugin in your allprojects configuration closure:

allprojects {
    apply plugin: "java" // <= apply Java plugin here
    apply plugin: ca.cutterslade.gradle.analyze.AnalyzeDependenciesPlugin
    analyzeClassesDependencies {
        justWarn = true
    }
    analyzeTestClassesDependencies {
        justWarn = true
    }
}

Upvotes: 2

Related Questions