I have several projects in a monorepo setup, each a composite build that depends on a shared configuration in a custom plugin. This plugin, monorepo-settings
, is applied to every settings.gradle.kts
file and sets up things like repositories, build cache configuration, and version catalogues (which are therefore defined only once across the entire monorepo, in the plugin).
However, this plugin doesn’t depend on itself. Its own settings.gradle.kts
doesn’t apply monorepo-settings
, it is not available at the time the plugin itself is being configured. Thus there is some code duplication and a possible discrepancy between the plugin’s setup and the setup it defines for every other project, which is the issue I’d like to resolve.
Is there a way to apply monorepo-settings
to itself? I understand it’s a chicken-and-egg problem where I can’t specify a recursive includeBuild
for the plugin itself, but is there a way to bootstrap it via some other means? I’m primarily concerned about version catalogues, though this holds for the other pieces of shared configuration as well.
Additionally, I’d like to define another plugin, monorepo-build
, for sharing configuration of root-level build scripts across monorepo projects (build.gradle.kts
). Is it possible to use monorepo-build
in its own build.gradle.kts
?