Sto scrivendo una piccola libreria L1
che dipende da una libreria di terze parti L2
. L2
ha più versioni che devono essere supportate da L1
. Ogni versione di L2
è associata a una specifica API e JDK di destinazione. Non ho controllo su L2
.Come posso organizzare il codebase del mio progetto che si rivolge a più versioni di libreria
Per esempio:
L2-v1.x
-> ho bisogno di essere in grado di fornireL1-v1.x
L2-v2.x
-> ho bisogno di essere in grado di fornireL1-v2.x
L2-v3.x
-> ho bisogno di essere in grado di fornireL1-v3.x
Quale sarebbe il modo migliore per organizzare il codice in git (cosa dovrebbe Ho messo in master/quali rami/dovrei avere più progetti/più moduli) sapendo che devo costruire il progetto usando Maven e voglio che la compilazione sia il più semplice possibile?
Grazie in anticipo.
Modifica: tutte le versioni di L2 sono in Maven Central, tutte le versioni di L1 devono essere in centrale.
Grazie per la risposta. Ho modificato la mia domanda: infatti tutto il codice di L1 è pensato per essere in centrale, le versioni L2 sono già disponibili come dipendenze. Come influisce il tuo approccio? – Kraal
@kraal come dice l'articolo collegato, se L2 è in uso, allora non è necessario l'approccio del modulo: una semplice dichiarazione di dipendenza è sufficiente. – VonC
Quindi, come faccio a gestire i sottomoduli utilizzando JDK di origine e destinazione diversi? Compilare tutto con lo stesso JDK può portare a bug inaspettati. Alcuni progetti usano moduli, altri usano rami diversi, altri progetti diversi, alcuni usano qualificatori Maven, beh, non è chiaro quale sia la pratica migliore. Finora ho usato i moduli, ma non sono convinto che sia la soluzione migliore. – Kraal