Penso che la cosa migliore da fare sarebbe garantire che i vari moduli non dipendano dall'essere nella stessa directory (cioè separati per componente). Molte persone sembrano avere una paura mortale di questa idea, ma una buona serie di script di costruzione dovrebbe essere in grado di automatizzare qualsiasi dolore.
L'obiettivo finale sarebbe quello di rendere più semplice l'installazione dell'infrastruttura e quindi di lavorare su un singolo componente in modo estremamente semplice una volta impostato l'ambiente.
(È importante notare che provengo dai mondi Perl e CL, dove installiamo "moduli" in qualche posizione globale, come ~/perl o ~/.sbcl, piuttosto che includere ogni modulo con ciascun progetto, come Le persone Java lo fanno. Si potrebbe pensare che questo sarebbe un problema di manutenzione, ma finisce per non esserlo: con uno script che aggiorna ogni modulo dal repository git (o CPAN) su base regolare, è davvero il modo migliore.)
Edit: una cosa:
progetti hanno sempre dipendenze esterne. I miei progetti hanno bisogno di Postgres e di un'installazione Linux funzionante. Sarebbe assurdo impacchettare questo con il codice app nel controllo della versione - ma uno script per ottenere tutto il setup su una nuova workstation è molto utile.
Immagino che quello che sto cercando di dire, in un modo indiretto, forse, è che non penso che dovresti trattare i tuoi moduli interni in modo diverso dai moduli esterni.
In questo layout sorgente, il livello del modulo è sopra o sotto il livello src /? Cioè mylib/src/java o/src/java/mylib? –
Tengo separati tutti i miei moduli, perché li costruisco separatamente e uso un gestore delle dipendenze per combinarli. Per questo motivo, vorrei fare mylib/src/java. – Jared
Modificato per riflettere la domanda lib. – Jared