2014-04-23 28 views
6

Ho un progetto Maven multimodulo e voglio automatizzare parte della preparazione del rilascio. Prima del rilascio aumento la versione del modulo modificato A, e poiché ho il modulo B dipende da A, ho anche bisogno di aumentare la versione di B. So che ci sono "versioni" e "rilascia" i plugin Maven, ma non lo fanno a cascata l'aggiornamento della versione. È possibile aggiornare automaticamente anche la versione B?Come impostare la versione in cascata in Maven?

Alcune aggiunte per chiarire: Non usiamo la versione del modulo genitore, quindi non ho bisogno di aggiornarlo.

Prima della versione urto:

parent module (1.0) 
| 
|-- A module (0.01.00) 
|-- B module (0.02.00) 

Dopo la versione urto:

parent module (1.0) 
| 
|-- A module (0.01.01) 
|-- B module (0.02.01) 
+0

E' difficile immaginare che cosa Stai chiedendo - sono i moduli A e B parte della struttura multi-modulo? –

+0

I moduli A e B hanno la stessa versione del genitore e successivamente l'un l'altro? –

risposta

4

release plug-in hanno update-versions obiettivo e autoVersionSubmodules opzione che imposta le versioni sottomoduli alla versione progetto principale.

Esempio di utilizzo here.

Ora, se si dispone di dipendenze tra i propri moduli (Module B dipende da Module A), non verranno aggiornati dal plug-in release.

Per risolvere questo problema è possibile utilizzare ${project.version} quando si definisce la dipendenza su Module A in Module Bpom.xml.

Per esempio (in Module B s' pom.xml):

<dependency> 
     <groupId>test</groupId> 
     <artifactId>module-a</artifactId> 
     <version>${project.version}</version> 
    </dependency> 

(questo funziona perché entrambe Module A e Module B versioni sono gli stessi e derivato dalla versione progetto principale)

+0

grazie per la tua risposta, ho aggiunto alcuni dettagli alla mia domanda. Non uso la versione genitore, quindi non lo aggiorno e sempre "1.0". Il modulo A e il modulo B hanno versioni diverse, perché B dipende da A, ma A non dipende da B, quindi aumento la versione di B senza aumentare la versione di A. – mulya