Sia benvenuta la scoperta del plugin di Maven per la gestione delle versioni: ha un sacco di comandi, ma in questo articolo mi limito a scrivermi un promemoria per un caso particolare.

Lavoro su vari progetti strutturati in moduli. La directory principale contiene il parent pom, mentre le sottodirectory contengono i progetti figlio con i loro pom; il parent pom ha una lista dei progetti figli nel tag “modules”.

Nel mio caso, tutti i progetti figlio non modificano la versione definita nel parent pom (non è specificato il tag /project/version). Per cui il mio obiettivo è modificare la versione definita nel parent pom (tag /project/version di questo pom) e modificare nei moduli la versione del parent pom in uso (tag /project/parent/version dei file pom.xml delle sottodirectory).

Il comando del maven-versions-plugin che ho usato è

mvn versions:set -DnewVersion=1.2-SNAPSHOT

Nell’output, per ogni progetto viene scritto esplicitamente l’azione fatta:

  • per il progetto genitore “updating project”
  • per i progetti figlio “updating parent”

L’output nella sezione Reactor Summary è un po’ criptico, a mio avviso: per il progetto genitore viene scritto “SUCCESS”, ma per ognuno degli altri progetti c’è uno strano “SKIPPED”.

Un’ultima nota: vengono creati i file “pom.xml.versionsBackup” (a meno di non impostare il parametro “generateBackupPoms” a true).

(Testato con maven 3.3.)

Annunci