I would like to use a plugin in settings.gradle to ensure a naming convention of projects based on a ‘.properties’ file (basically, the name of the project is a composition of a set or properties specified in a ‘.properties’ file)
I wrote a class that implements
Plugin<Settings>
which seems legitimate according to the javadoc of the Plugin interface. But when I apply the plugin in the settings.gradle script
apply plugin:'my-plugin'
I get an UnsupportedOperationException thrown by DefaultObjectConfigurationAction.
Indeed the DefaultObjectConfigurationAction class is only able to apply plugins on Project objects (see applyPlugin methods).
A workaround is to write
new org.foo.bar.MySettingsPlugin().apply(settings)
in settings.gradle but this syntax is far less readable (in particular, I cannot use the “named plugin” mechanism, so the fully qualified name of the plugin class is explicitly used in the scripts)
Is there another solution to apply plugins on arbitrary objects ?