Avendo diversi sottoprogetti ci sono alcuni scenari che variano in estensione di utilizzo.
Tipicamente: lavorando sulle origini di alcuni progetti e usando semplicemente gli altri come codice con ispezione sorgente (o codice appena decompilato).
Questo può significare compilazione più veloce o più controllo del codice sorgente.
Per lavorare con tali sottoprogetti o moduli, un'infrastruttura di build come maven consente di definire le dipendenze.
-
Il vantaggio di molti repository è un disaccoppiamento maggiore (come in non più utilizzando una libreria in un progetto più grande), una migliore ingegneria (che impedisce le dipendenze cicliche tra moduli).
-
Il vantaggio di un ampio repository: puoi ancora estrarre singoli moduli e specificare una struttura, gerarchia.
-
Lo svantaggio di molti repository è che nel tempo la struttura potrebbe cambiare. La manutenzione di una versione snapshot / taggata in un determinato momento diventerà pelosa.
-
Lo svantaggio di un grande repository: la struttura può diventare disordinata. Manterrai librerie obsolete.
Conclusione: "Dipende"
Mi piace una struttura modulare e stratificata: librerie indipendenti (come per la grafica vettoriale), librerie dipendenti (oggetti DAO) appartenenti ad alcune applicazioni, grandi applicazioni.
Usa qualcosa come Maven, non aver paura di gettare via la cronologia delle versioni e il refactor in generale. Scegli una struttura grande, ma mantieni indipendenti le piccole librerie riutilizzabili (come per i PDF).
I doubt this will help much, one has to experience organizing large projects, splitting them up, doing some refactoring.