I have a multi-module project where there are various components which follow a fairly standard layout. For example:
root (pom) ... module-NN (pom) module-NN-launcher (jar) module-NN-runtime (jar) ...
(where there are many module-NN projects)
Each *-launcher project uses a proprietary API to launch a framework providing a generic API. The *-runtime projects are then loaded into this framework to "do stuff".
As things currently stand, I have dependencies for the launcher defined in each *-launcher/pom.xml. Likewise, I have the generic APIs references in the *-runtime/pom.xml. I could update the project structure to be something like:
root (pom) launcher (pom) ... module-NN-launcher (jar) ... runtime (pom) ... module-NN-runtime (jar) ... applications (pom) ... module-NN (pom) ...
And put the relevant dependencies in the launcher/runtime pom.xml files, but this makes the layout of the projects much less intuitive.
Has anyone faced this sort of problem before? What advice can you provide in producing a meaningful layout without duplicating details across similar projects?