Come mantenere le librerie aggiornate in MAVEN?
-
03-07-2019 - |
Domanda
Nel negozio di sviluppo per cui lavoro, abbiamo un repository MAVEN interno, per mantenere le nostre librerie (proprietarie & open-souce). Un problema comune che affrontiamo è che, a volte, le librerie open source nel nostro repository MAVEN locale diventano obsolete. Esiste un modo automatico per mantenere sempre aggiornate tutte le librerie open source che utilizzo nel mio repository MAVEN? Cosa suggerisci per risolvere questo problema?
Soluzione
Supponendoti:
- Non voglio scaricare tutto
- Non voglio eseguire un altro server processo
- Voglio solo tenere traccia di un numero limitato di progetti
Potresti voler creare un file pom.xml separato con dipendenze come questa:
<dependency>
<groupId>org.openfoo</groupId>
<artifactId>jfoo</artifactId>
<version>[1.0.0,2.0.0)</version>
</dependency>
Questo dirà a Maven di usare jfoo 1.0.0 fino a jfoo 2.0.0, quindi quando jfoo rilascerà la versione 1.2.17, supporterai che nella prossima build supponendo che le tue impostazioni siano impostate per controllare le versioni ogni volta.
Questo pom non deve davvero costruire nulla. Elenca solo quelle cose che vuoi monitorare.
In esecuzione:
cd the-path-to-the-project; mvn -q -B -U package
Via cron una volta al giorno aggiornerà tutte le dipendenze in quel pom e segnalerà solo quando c'è un problema
A proposito, questo è un trucco. Se il numero di sviluppatori è > 3 e hai le risorse per eseguire Nexus, non preoccuparti dell'hacking.
Altri suggerimenti
Archiva è stato menzionato, ma nexus sembra più popolare. Entrambi sono stati progettati per risolvere problemi come quello che stai riscontrando
Dai un'occhiata a Apache Archiva , un gestore di repository per Maven.