2014-02-11 5 views
6

Ich versuche, eine nicht-interaktive Maven Release zu tun:Maven Release Plugin und Befehlszeilenargumente

mvn clean install \ 
    -PmyAssembly,attach-installer \ 
    -DcustomerFlag=simple \ 
    release:clean \ 
    release:prepare \ 
    release:perform \ 
    -DreleaseVersion=1.0.1 \ 
    -DdevelopmentVersion=1.0.2-SNAPSHOT \ 
    -Dtag=my-project-1.0.1 

Aber die Eigenschaft -DcustomerFlag=simple ist nicht gesetzt, wenn perform nur läuft, wenn prepare läuft.

Muss ich alle Befehlszeilenargumente und das Profil zweimal angeben, einmal für prepare und einmal für perform?

Alternativ kann ich den Schritt perform einfach überspringen und eine regelmäßige Build/deploy danach mit den Parametern, die ich brauche aus dem generierten Tag.

Antwort

8

Keines der -D-Argumente von der Kommandozeile wird vom Maven-Release-Plugin an die inneren Maven-Aufrufe übergeben. Sie sollten -Darguments="-DcustomerFlag=simple" verwenden, um das erwartete Ergebnis zu erhalten, siehe arguments

+1

Ich musste "-Darguments = -DcustomerFlag = simple" verwenden, um es auf Bamboo zu arbeiten. – Planky

+0

Wie fügt man mehrere Argumente hinzu? z.B. customerFlag UND SkipTests? – gorootde

+0

Genau wie auf der Kommandozeile, mit Leerzeichen im Wert, z. B. '-darguments =" - DcustomerFlag = simple -DskipTests "' –