2011-11-06 17 views
20

Ho un sacco di progetti come:Puoi ereditare la versione dal POM padre in Maven?

project1 
project2 
project3 
........ 
project111 

Ogni progetto compilato in vaso: progetto-1.1.1.1.jar, .... vuol possibile in cartella principale aggiungere pom.xml così posso definire versione 1 volta per tutti i progetti?

risposta

28

Se si omette lo <version/>, esso eredita dal genitore. Tuttavia, l'elemento <parent/> deve contenere un valore <version/> per il genitore, pertanto la versione deve essere presente in ogni singolo POM, ma solo una volta.

23

Si può fare questo:

parent pom.xml: 
<project> 
    ... 
    <version>${my-project-version}</version> 
    ... 
    <properties> 
    <my-project-version>1.1.1</my-project-version> 
    </properties> 
</project> 

child pom.xml: 
<project> 
    ... 
    <parent> 
    <relativePath>../parent/pom.xml</relativePath> 
    <version>${my-project-version}</version> 
    </parent> 
    ... 
</project> 

Almeno, questo funziona per me.

+1

Ma si imposta 'my-project-version' sulla riga di comando con' -D'? – oberlies

+0

Non l'ho fatto, se ricordo bene. Ma ha bisogno di un genitore per essere già controllato nel percorso relativo corretto. –

+6

Sfortunatamente, questa soluzione non funziona affatto con Maven 3.0.4 – cbaldan

5

Utilizzare una proprietà e fare riferimento a esso ... a meno che non si utilizzi il plug-in di rilascio per le versioni, nel qual caso rimuove "-SNAPSHOT" dalla versione e sostituisce automaticamente tutte le istanze con il numero di versione reale, che sovrascrive qualsiasi variabili di sostituzione che hai impostato. Potresti stare meglio semplicemente impostandolo in ogni POM e usando il plugin di rilascio per taggare, incrementare e rilasciare il tuo progetto.

Problemi correlati