Sto scrivendo un'applicazione che ho diviso in più giare, comprese librerie di infrastrutture riutilizzabili, ognuna delle quali ha le proprie versioni (gestita dalla BOM) e repository git. Lo sto facendo per una serie di motivi.
- alcuni di questi sarebbero riutilizzabili se decidessi di iniziare a scrivere un'applicazione completamente diversa e potrei decidere di rilasciarli come open source.
- trasformandoli in moduli diversi, poiché si stabilizzano Non dovrò ricostruire il codice più e più volte, le API dei moduli si stabilizzeranno
- prevenire me stesso da stratagemmi e dipendenze scorretti assicurando che in alcuni casi non ci sia visibilità del tempo di compilazione del percorso di classe.
tuttavia questo mi ha lasciato un sovraccarico di sviluppo. Principalmente questi problemi
- Ho qualcosa come una dozzina di repository che li clonano se su una nuova installazione è fastidioso.
- Non riesco a visualizzare o reimpostare il codice insieme in intellij mentre apporto le modifiche alle librerie a monte, se necessario. nota: questi non stanno cambiando insieme tutto il tempo, solo bisogno di migliorare a monte prima a volte, ma sarebbe utile farlo nel contesto.
- anche se apro tutti i repository in intellij in una sola volta, non li tratta come interdipendenti, quindi la ridenominazione di una classe non aggiornerebbe i riferimenti, ecc. appropriatamente. Prima mi vuole
mvn install
them. - se ho bisogno di rilasciare più moduli, devo entrare in ogni modulo e digitare
mvn release
, non vedo un buon modo per farlo per i moduli che sono cambiati dall'ultima versione in una volta (sarebbero comunque avere versioni differenti).
Ho pensato di creare un repo multi-modulo, ma poi ho ancora il problema repo, e non sembra aver senso dal momento che li rilascio con le loro versioni. Ogni volta che ho visto git submodule
s usato (compresi i miei tentativi) hanno causato più problemi di quanti ne avessero risolti. Potrei semplicemente scrivere alcuni script di shell o makefile o qualcosa del genere, ma sembra un'ultima risorsa. È possibile che io debba sopportare il dolore iniziale mentre le cose si stabilizzano.
C'è un buon strumento (s) che risolverà i miei problemi?