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?