Prima di tutto, ho una sorta di comprensione che il seguente potrebbe non essere il modo generalmente accettato di fare le cose.Aggiornare una versione del progetto Maven dallo script
Abbiamo un progetto Maven 2 che ha un numero di versione che dovrebbe essere aggiornato ogni settimana o giù di lì, durante una nuova versione. Durante questo processo, ho cercato di eliminare tutte le cose che bisogna ricordare e ho creato uno script bash che gestisce il processo in modo interattivo.
Tuttavia, il mio problema è l'aggiornamento della versione pom dalla riga di comando. Posso farlo con sed, ma non penso che sia molto conveniente. Mi stavo chiedendo se ci sia un plugin Maven che sarebbe in grado di modificare il pom.xml direttamente dalla riga di comando. La versione è impostata nella sezione delle proprietà del pom. Sarebbe possibile scrivere un plugin che cambierebbe le proprietà?
Grazie in anticipo.
Aggiornamento
sembra che il mio problema era con le versioni progetto definito come proprietà (che sono stati applicati durante il filtraggio) che sembra ora un po 'stupido.
Una cosa che sto ancora cercando una risposta è come ottenere la versione di un certo progetto in modo affidabile alla riga di comando. Precedentemente avevo una proprietà "piuttosto unica" che utilizzavo con lo grep
, ma ora l'elemento <version>
non è univoco, in quanto nel progetto figlio ce ne sono almeno due. Avrei bisogno di una sorta di parser XML se Maven non avesse soluzioni, ma il mio obiettivo è rendere lo script il più indipendente possibile.
Non sono sicuro di aver creato una nuova domanda da questo, ma non l'ho fatto. Ottenere la versione è strettamente correlata all'impostazione della versione.
Grazie! Ho trovato il plugin da solo ma in qualche modo ho perso il fatto che il plugin può effettivamente aggiornare pom.xml e non solo visualizzare le dipendenze e così via. L'impostazione della versione non funziona poiché la versione è definita nel padre pom come una proprietà, cosa che non mi ero accorto di menzionare. Tuttavia, ho trovato che c'è un obiettivo "aggiornamento-proprietà" che potrebbe fare il trucco. – mkko
Apparentemente "update-properties" è solo per aggiornare le dipendenze e non impostare alcun valore. "versions: set" è la corrispondenza più vicina, ma sembra che non ci sia modo di definire la versione nel genitore pom in questo modo - o almeno come una proprietà. – mkko
@mkko: 1. In realtà ** devi ** codificare la versione nel POM padre e negli elementi '' dei moduli figlio, vedere [MNG-624] (http://jira.codehaus.org/browse/MNG-624) per discussioni esaurienti su questo argomento 2. Le dipendenze dovrebbero usare la proprietà built in $ {project.version} ', non esiste un motivo valido per usare una proprietà per la versione. È così che funziona con Maven. 3. E poi sarai in grado di usare 'versions: set' (ma questa è una conseguenza indiretta di come sistemare le cose). –