Build applications with runtime dependencies


I want to build applications. An application consists of several components. The special thing is that the components only know each other at runtime. A component is a Java project which needs other Java projects and foreign JARs. All Java projects are in one Git repository. They are connected using settings.gradle and includeFlat in an umbrella project.

I want to build application “server-abc” (for customer “abc”), which consists of these components:

  • addon-abc
  • server (with mainClass)

I want to build application "server-def“, which consists of these components:

  • addon-def
  • server (with mainClass)

application "adminGui-abc“, components:

  • addon-abc
  • adminGui (with mainClass)

application "client-abc“, components:

  • client-addon-abc
  • addon-abc
  • client-base
  • client (with mainClass)

and many more.

The build script code should be in the build.gradle file of the addon projects and of course as short as possible. Does anyone have a tip for me or even a solution?

addon-abc can only define a runtimeOnly dependency to the server while building server-abc. While building client-abc there is no dependency to the server project.

Regards, katzengreis