Adding the build system, proposition No. 1:
Use Maven to compile the project adding separate source roots defined in the original repository.
These are not standalone modules, as they have dependencies on one another, so they either need to be included into maven build selectively as is here, or the source roots needs to be merged into single dir and follow maven conventional layout (second PR).
This here has an advantage of flexibility - as there is several variants of output, depending on which roots are included in the build, these can be expressed by specific maven profiles, each selecting applicable source roots.
The disadvantage is poor tooling support. For example IDE may be confused and not detect sources, even if commandline mvn creates expected output. Besides fighing maven conventions is a lost cause, even if battles are being won here and there.
Adding the build system, proposition No. 1: Use Maven to compile the project adding separate source roots defined in the original repository. These are not standalone modules, as they have dependencies on one another, so they either need to be included into maven build selectively as is here, or the source roots needs to be merged into single dir and follow maven conventional layout (second PR).
This here has an advantage of flexibility - as there is several variants of output, depending on which roots are included in the build, these can be expressed by specific maven profiles, each selecting applicable source roots.
The disadvantage is poor tooling support. For example IDE may be confused and not detect sources, even if commandline mvn creates expected output. Besides fighing maven conventions is a lost cause, even if battles are being won here and there.