Composite build hangs when there is cyclic dependency between sub-builds. Here’re our projects:
- “ligradle-core” is the LinkedIn Gradle Plugins API. It is a java project so it needs “ligradle-jvm” on buildscript classpath.
- “ligradle-jvm” is an implementation of LinkedIn Gradle Plugins API and contains plugins for Jvm platform (Java, War, Scala, Groovy, etc.). “ligradle-jvm” itself is a java project so it needs “ligradle-jvm” on buildscript classpath. Technically, “ligradle-jvm” depends on itself, at a previously released version.
Here’s the diagram:
In this scenario, the composite build hangs. More details (with Gradle 3.2):
- Debug output: https://gist.github.com/szczepiq/e06adb719a6883914d90bbbeeef443c5
- GradleDaemon process jstack: https://gist.github.com/szczepiq/ceccb8206008373d16e86d1c1941143f
This use case is a daily bread in our org - it would be great if composite build supported it!