Composite Build Workflow

This is a stripped down version of our composite plugin and boilerplate scripts that Ryan mentioned. I also included a skeleton project structure containing some of the projects with stripped down settings and build.gradle files showing the DAG. We normally pull the boilerplate scripts directly from our repo with URL but I changed those to relative files to simplify it.

composite-projects.zip (8.9 KB)

Briefly:

  • In settings.gradle, the includeFlatIfLocal only adds the includeFlat project dependency if the project is on the local file system.
  • In build.gradle dependencies block, the composite.resolveDependency is used dynamically create a project dependency or just return the normal dependency.

The DAG looks like this:
myco-services ----> core-persistence-repository -> core-persistence-model --> core -> test
…\–> model-transform ------------------------------------------------/
…\-> expression-language -----------------------------------------/

Note: I only showed one “top-level” application (myco-services) but we have multiple and the DAGs widely vary.