2009-06-09 31 views
41

Esistono plug-in o comandi Maven preesistenti per aggiornare le dipendenze nel POM? Esempio: (se questo era nel mio POM)Dipendenze aggiornamento Maven in POM

<dependency> 
    <groupId>commons-lang</groupId> 
    <artifactId>commons-lang</artifactId> 
    <version>2.3</version> 
</dependency> 

C'è un comando o un plugin che posso correre per ottenere per aggiornare la dipendenza a:

<dependency> 
    <groupId>commons-lang</groupId> 
    <artifactId>commons-lang</artifactId> 
    <version>2.4</version> 
</dependency> 
+2

sarei perfettamente felice se un plugin sarebbe semplicemente controllare gli aggiornamenti e informarmi su di loro.Lo stesso controllo per le nuove versioni di plugin sarebbe anche pulito. – Huxi

+1

Ho pensato che potrebbe essere uno degli obiettivi del Mojo che costruirò. – javamonkey79

risposta

50

Prova il maven-versions-plugin, in particolare, il versions:use-latest-versions obbiettivo.

+3

Questo fa ciò che il poster ha richiesto, anche se penso che l'uso delle ultime versioni sia migliore nella maggior parte dei casi. Ma questo è sicuramente il plugin da usare. –

+5

Dang, ora che l'ho già costruito! Credo che, come si suol dire, "non reinventare le ruote a meno che non si voglia imparare molte cose sulle ruote". :) Grazie! – javamonkey79

+0

Yup - Ho perso l'uso-ultime uscite. Grazie, Zac. –

1

No non c'è non lo è. E sii felice che non ci sia. In che modo un tale strumento sa come aggiornare le tue dipendenze?

Con rotture che potrebbero accadere tra versioni minori, sarebbe un disastro in attesa di accadere.


Ma si può sempre write your own Mojo per questo.

  • ultima versione di dipendenza dal repository Maven
  • confronto con la versione da pom.xml
  • riscrittura pom.xml
  • corsa mvn test
  • ?
  • Utile!
+0

Ho pensato che fosse quello che sarebbe venuto fuori - ho cercato un progetto Mojo per fare comunque, grazie. – javamonkey79

+0

Questa è sempre una buona cosa da ascoltare. Assicurati di pubblicare un link se decidi di seguire la via dell'open source. –

+1

Questo potrebbe essere vero una volta, ma non lo è più (@Robert: suggerisci di affinare la tua risposta?). –

4

è possibile utilizzare dependencyManagement nel pom genitore:

<dependencyManagement> 
     <dependencies> 
      <dependency> 
       <groupId>commons-lang</groupId> 
       <artifactId>commons-lang</artifactId> 
       <version>2.4</version> 
      </dependency> 
     </dependencies> 
</dependencyManagement> 

in questo modo, è necessario modificare la versione sola volta nell'arco POM genitore

+1

questo è molto preferito avere alcuni strumenti di aggiornamento in modi che è possibile controllare o meno. Garantisci inoltre che tutti i bambini utilizzeranno la versione specificata. –

+2

@MikePone dipende dal caso d'uso - ce ne sono di validi, proprio come avere una distribuzione che ha bisogno di usare sempre le ultime versioni dei propri artefatti, che è un'esigenza comune. In generale, ovviamente, hai ragione. – eis

24

Preferisco usare mvn versions:display-dependency-updates; questo genera un rapporto di quali dipendenze possono essere aggiornate, ma consente di modificare le POM da soli. C'è anche un comando display-plugin-updates per i plugin.

+1

Molto utile! Grazie ... – kazanaki

+1

Il link è morto – FDinoff

+1

Funziona per me! Per qualche motivo il collegamento mi porta sempre alla homepage di mojo, incollerò il link qui: http://www.mojohaus.org/versions-maven-plugin/display-dependency-updates-mojo.html – Liuting

2

Personalmente, penso che ci dovrebbe essere un parametro aggiuntivo in Maven che consentirebbe di aggiungere al pom.xml.

vedi post a http://maven.40175.n5.nabble.com/Is-there-any-maven-plugin-to-add-dependency-to-existing-pom-xml-td2839092.html#a5772853

Qui, è possibile aggiungere il seguente al file pom.xml:

<project> 
    ... 
    <build> 
    ... 
    <plugins> 
     ... 
     <plugin> 
     <groupId>org.codehaus.mojo</groupId> 
     <artifactId>versions-maven-plugin</artifactId> 
     <version>2.1</version> 
     </plugin> 
     ... 
    </plugins> 
    ... 
    </build> 
    ... 
</project> 

...

Poi il backup del file di pom.xml tramite versione set comando:

mvn versions:set -DnewVersion=9.9.9 

Run latest vers ioni:

mvn versions:use-latest-versions 

e diff i file pom.xml, pom.xml e pom.xml.versionsBackup