2010-06-28 27 views
5

Ho un progetto Maven multi-modulo e vorrei usare le versioni in modo tale che lo sviluppatore debba toccare solo il progetto root per modificare la versione di tutti i moduli.Propagazione di versione in Maven

Ad esempio

proja contiene

  • Modulo1

  • Module2

  • Module3

Al l i moduli contengono i propri Poms e hanno il pom di ProjA come loro genitore. Una volta eseguita la build, ricevo un jar creato per ciascun modulo. Ora per creare una versione più recente di ProjA, devo solo cambiare la versione del pom di ProjA e tutti i poms dei moduli dovrebbero prendere questa nuova versione dal genitore. Funziona se harcode la versione genitore in tutti i pom del modulo. Ma questo mi costringerà anche ad aggiornare i poms di tutti i moduli per ogni cambio di versione nel pom principale che lo sconfigge. C'è un modo per evitare questo e ottenere comunque il comportamento dichiarato?

risposta

6

Utilizzare i Maven Versions Plugin e il suo versions:update-child-modules obiettivo:

  • versions:update-child-modules aggiorna la sezione padre dei moduli figlio di un progetto così la versione corrisponde alla versione del progetto corrente. Ad esempio, se si dispone di un aggregator pom che è anche il padre per i progetti che aggrega e le versioni secondarie e secondarie non sono sincronizzate, questo mojo può aiutare a correggere le versioni dei moduli figlio. (Nota che potrebbe essere necessario invocare Maven con l'opzione -N per eseguire questo obiettivo se il tuo progetto è danneggiato in modo così grave da non poter essere creato a causa della mis-match della versione).
Problemi correlati