Applying a plugin to all settings

Is there a way to apply a ‘Plugin<Settings>’ to all settings files?

I’m looking for something to put in my ‘init.d’ directory which would be equivalent to this:

allprojects { project ->

project.buildscript {

repositories.maven { url ‘http://11.22.33.44/plugins-release’ }

dependencies.classpath ‘org.example:my-plugin:1.0.0’

}

}

I know that the the ‘Gradle’ interface doesn’t have an ‘allsettings’ method, but was wondering if there is some kind of hack that anyone has used to achieve this?

What are you trying to achieve? There is only one settings file per build.

Thank you or your quick reply, Peter! Your statement: “There is only one settings file per build.”, helped me a lot to understand how you envision Gradle to be used. In line with that my question would have better been phrased:

Is there a way to apply a ‘Plugin<Settings>’ from a script in ‘init.d’?

I wrote a plugin that converts our internal project ID to a ‘ProjectDescriptor’ and want to use that plugin in all our builds. This way it would be easier to maintain all ‘settings.gradle’ files - there are 30+ builds.

Every build creates a deliverable for a certain customer or multi-tenant environment and includes a different set of projects, for example

  • build_1 might include projects A, B, D * build_2 might include projects A, C, E, F * and so on

The only current hook is: http://www.gradle.org/docs/current/dsl/org.gradle.api.invocation.Gradle.html#org.gradle.api.invocation.Gradle:settingsEvaluated(groovy.lang.Closure)

The ‘Settings’ object is still mutable in this callback, but it is after the settings file has been loaded.

I’ve raised GRADLE-2929 as a request to add a hook to get a hold of the ‘Settings’ object before the settings file is executed.