Lex Manos
08/19/2026, 8:44 AMPlugin with id 'my-java-convention-b' not found. error.
If i comment out the application of my-java-convention-b in app\build.gradle and run projects it shows both includeBuilds loaded.
So I am really confused.
Yes, I could move build-logic-b\convention to build-logic-a\convention-b but that doesn't solve the actual issue.
To explain the actual issue, I am trying to reorganize a very large project into multiple projects with shared sources. Using a hybrid of an external java-gradle-plugin and a in-repo build-logic project.
I can get the in-repo build-logic to work, and reference the built external plugin, however the issue comes when i try to develop both at the same time.
includeBuild 'build-logic'
includeBuild 'forgedev' // Checked out in a sub-directory, could be anywhere
Results in the normal build-logic gradle file not being able to be compiled with tons of errors saying it cant find groovy.
Commenting out the 2nd includeBuild fixes the compile issues.
So ya, there are two issues. The first is when trying to make a test workspace, the second is when trying to integrate into a real project.
Maybe im missing something really simple, but I tried searching the gradle github and didn't find anything says that only one includeBuild works for build-logic. On the contrary I've found tons of examples of it saying that multiple work. Ive been going at this for all weekend, and finally exhausted what i can figure out myself.Vampire
08/19/2026, 9:52 AM:build-logic-b:convention and :build-logic-b:convention both build an artifact with coordinates com.example.buildlogic:convention and this is what is causing what you see.
An included build is like when you have the build separate, build it, publish it to some repository and then consume the artifact by coordinates.
With the included builds and the plugins, Gradle searches for the plugin IDs in the included builds and then adds dependencies for those coordinates automatically.
So the id 'my-java-convention-a' and the id 'my-java-convention-b' both cause the dependency com.example.buildlogic:convention to be added to the build script classpath.
But then only the one from A is built and added as this already provides the requested coordinates.
So you either need to change the group in one of the builds, or the artifact name and thus (to be clean) the project name, so that each of the produced artifacts has unique coordinates.
Btw. you should add a namespace to your convention plugins either by having a package statement in the scripts or by naming the files with some dot in it. Plugin IDs without namespace (i.e. without dot) should stay reserved to built-in plugins to not risk some naming clash in the future for example if a built-in plugin with the same name gets added.Lex Manos
08/19/2026, 4:47 PMincludeBuild('ForgeDevPlugin') and running git clone <https://github.com/MinecraftForge/ForgeDevPlugin.git>
Then refreshing the project will cause :build-logic-a:convention:compileJava to failVampire
08/19/2026, 5:26 PMTask ':build-logic-a:convention:compileJava' is not up-to-date because:
Input property 'classpath' file D:\Dateien\.gradle\caches\9.0.0\generated-gradle-jars\gradle-api-9.0.0.jar has been removed.
Input property 'classpath' file D:\Dateien\.gradle\wrapper\dists\gradle-9.0.0-bin\d6wjpkvcgsg3oed0qlfss3wgl\gradle-9.0.0\lib\groovy-4.0.27.jar has been removed.
Input property 'classpath' file D:\Dateien\.gradle\wrapper\dists\gradle-9.0.0-bin\d6wjpkvcgsg3oed0qlfss3wgl\gradle-9.0.0\lib\groovy-ant-4.0.27.jar has been removed.
and more...
which looks very suspicious but also explains that the types are not found on compilation.Vampire
08/19/2026, 5:27 PMVampire
08/19/2026, 5:35 PM<http://systemProp.org|systemProp.org>.gradle.unsafe.suppress-gradle-api=trueVampire
08/19/2026, 5:36 PMLex Manos
08/19/2026, 5:37 PMLex Manos
08/19/2026, 5:45 PMdependencies {
implementation gradleApi()
}Lex Manos
08/21/2026, 10:48 PMVampire
08/22/2026, 5:15 PMVampire
08/22/2026, 5:16 PMVampire
08/22/2026, 5:18 PMLex Manos
08/22/2026, 5:53 PMVampire
08/22/2026, 6:35 PMVampire
08/22/2026, 6:37 PMVampire
08/22/2026, 6:37 PMLex Manos
08/22/2026, 6:46 PMVampire
08/22/2026, 6:47 PMLex Manos
08/22/2026, 6:53 PMVampire
08/22/2026, 8:34 PM