2009-06-13 12 views
7

Quando rilasciamo i progetti, di solito è sempre lo stesso. Ci sono argomenti o proprietà che posso aggiungere al rilascio: preparare che consentirà il rilascio di modelli in modalità batch?Maven release properties

Esempio:

 
What is the release version for "MyProject"? (company.jar.site:myproject) 0.0.1: : 
What is SCM release tag or label for "MyProject"? (company.jar.site:myproject) MyProject-0.0.1: : 
What is the new development version for "MyProject"? (company.jar.site:myproject) 0.0.2-SNAPSHOT: : 

Sarebbe bello fare qualcosa di simile:

 
mvn -B release:perform -DreleaseVersion:$nextMinorVersion$ or 
mvn -B release:perform -DreleaseVersion:$nextPatchVersion$ or 
mvn -B release:perform -Dtag:v$nextPatchVersion$ or 
mvn -B release:perform -Dtag:v$nextPatchVersion$-someCustomNaming 

Se una cosa del genere non esiste già, mi creerà un custom Mojo per farlo.

In alternativa, durante le istruzioni sopra riportate di solito facciamo automaticamente la prima domanda, 'v' + versione corrente al secondo, e successiva minore all'ultima. Se potessimo modificarli in qualche modo, ciò risolverebbe il problema immediato.

Grazie in anticipo.

risposta

7
mvn -B release:prepare release:perform 

-B è per la modalità batch, utilizzerà i valori predefiniti che offre in modalità non batch. Generalmente per X.Y.Z-SNAPSHOT, esegue una versione di X.Y.Z e imposta la nuova istantanea su X.Y. (Z + 1) -SNAPSHOT.

Come per tutte le cose, puoi combattere questa convenzione di denominazione e avere un sacco di mal di testa, o arrendersi e decidere le tue versioni e le etichette saranno il modo di fare e ottenere un sacco di soldi gratis. L'ho combattuto e ho perso. Solo uno dei tanti modi in cui devi rinunciare completamente a chiederne l'uso se lo userai.

Sono perfettamente felice di averlo fatto, il fatto di voler imporre i miei schemi di solito non è comunque una buona idea.

+0

L'unico problema è che di solito voglio modificare il nome del tag offerto.Poiché il mio genitore artefatto è solitamente "foo-parent" e voglio che il tag sia foo-1.2.3 invece di foo-parent-1.2.3. –

2

risposta parziale, dopo la vostra comment:

Per modificare il nome del tag, utilizzare l'argomento -Dtag=xxx-release:prepare. Vedi the release:prepare documentation per i dettagli.

codice non testato avvertimento

Per fare questo in modo completamente automatico, è necessario aggiungere una voce di configurazione al vostro pom.xml in cui si dovrebbe impostare il nome del tag:

<maven-release-plugin> 
    <configuration> 
     <tag>parent-${releaseVersion}</tag> 
    </configuration> 
</maven-release-plugin> 
1

Il modo che ho fatto è Performing a Non-interactive Release Using a properties file.

si crea un release.properties nella radice del progetto aggregatore (quello che ha imballaggio: POM) e per ogni progetto si aggiunge due proprietà di questo modulo:

project.rel.<groupId>\:<artifactId>=<releaseVersion> 
project.dev.<groupId>\:<artifactId>=<nextSnapshotVersion> 

se si desidera utilizzare un particolare letterale per il tag si aggiunge la seguente proprietà

scm.tag=<tagLiteral> 

il seguente è un esempio in cui si fanno entrambe le cose (specificare la versione di ogni modulo e definiti letterale da utilizzare per codificare nel SCM):

scm.tag=my-project-0.2.1 
project.rel.org.monachus.monkeyisland\:my-project=0.2.1 
project.dev.org.monachus.monkeyisland\:my-project=0.2.2-SNAPSHOT 
project.rel.org.monachus.monkeyisland\:module-a=0.1.1 
project.dev.org.monachus.monkeyisland\:module-a=0.1.2-SNAPSHOT