Da un grande repository SVN vogliamo passare a Maven / Gradle per gestire le dipendenze in modo che i programmatori possano lavorare con un singolo progetto senza verificare il tutto.
Stiamo scrivendo plugin per un server (la sua interfaccia). Alcuni dei nostri plug-in dipendono da altri plugin installati anche sul server. Quindi i nostri plugin dovrebbero essere sempre costruiti rispetto alle versioni che sono attualmente (o che saranno) utilizzate sul server.
Per esempio, diciamo che il mio plugin A dipende da un plugin esterno B. Oggi B è installato con la versione 1.2.3, ma domani potrebbe essere installato con 1.2.4. Quando si costruisce A è importante costruire sempre contro la versione giusta.
Il mio problema è che abbiamo centinaia di plugin come A, quindi sarebbe quasi impossibile aggiornare manualmente le versioni di tutte le dipendenze solo se un plugin come B viene utilizzato con una nuova versione.
Ora ho pensato a due opzioni anche se non sono sicuro di come ottenerle.
-
Utilizzo di una sorta di configurazione globale per le versioni di dipendenza (nessuna idea se o come ciò potrebbe essere fatto)
-
Ospitando sempre gli artefatti usati correnti in un repository separato
Global resolver resolver
Dato che sono nuovo a Maven, non so se questa potrebbe essere una soluzione possibile o addirittura accettabile. Ho solo pensato di creare un qualche tipo di artefatto, che contenga tutte le dipendenze che i plugin come A potrebbero avere. La cosa veramente brutta (anche se funzionerebbe) è che il plugin A avrebbe delle dipendenze di cui non ha veramente bisogno.
Configurazione della versione globale
Poi ho pensato a un modo per dire a Maven / Gradle quale sia l'ultima versione di dipendenza di un artefatto specifico. Non so se questo è possibile o se questo porterebbe ad altri problemi.
Hosting degli artefatti Al momento sto testando l'hosting delle dipendenze esterne su un repository separato come istantanee in modo che i nostri plugin possano risolverli sempre alla versione più alta disponibile. Attualmente questo porta a problemi quando si risolvono le dipendenze dalle dipendenze, ma suppongo che ho appena sbagliato qualcosa nella configurazione. Tuttavia non sono sicuro se questo potrebbe essere un modo giusto per andare.
Spero che tu capisca di cosa abbiamo bisogno, quindi potresti darmi alcuni consigli o parole chiave per concetti che potrebbero risolvere il nostro problema. Vogliamo passare a un sistema di gestione delle dipendenze (al momento tutte le dipendenze sono incluse localmente) ma tutte le opzioni sembrano più complicate rispetto al nostro repository incasinato.