Help with choosing a configuration for multi-projects build


(NL) #1

If I have a client-server application with the following project dependencies:

ClientUI depends on ClientLogic and Shared.
ClientLogic depends on Shared.
Server depends on Shared

What approach should I take in order to be able to build the server (Server + Shared) and client (ClientUI + ClientLogic + Shared) separately, that is, building one does not include or depend on the other?

I have read most of the multi-project guide but it doesn’t include this kind of configuration as far as I could tell. Should I put all 4 projects under an “empty” root project, then somehow describe the above relations in a way that allows me the 2 separate builds? Should I publish to a local rep Shared and include it in the other 2 separate projects? Something else?

Currently I’m using Gradle 3.1, but can update to latest.
Using Eclipse + Buildship if it matters.