2015-09-22 7 views
8

Ich möchte JAR mit selbstdefinierten über die Kommandozeile, wie weitergegeben Version bauen:Wie setze ich die project.version, indem ich die Versionseigenschaft auf der Kommandozeile übergebe?

Wenn ich gradle Build-Task wie folgt auszuführen:

gradle build -Pversion=1.0 

myproject-1.0.jar erzeugt werden soll.

Ich habe versucht, unten an den build.gradle die Zeilen hinzufügen, aber es hat nicht funktioniert:

version = project.hasProperty('version') ? project['version'] : '10.0.0' 
+0

Haben Sie versucht, mit Systemeigenschaft Hinzufügen ('-d') anstelle von Projekteigenschaft (' -P')? –

+0

@MisaLazovic Es hat auch nicht funktioniert. –

+0

Dummes Ding, aber versuchen Sie mit dem Format 'grddle [Option] [Aufgabe]', nicht 'grddle [Aufgabe] [Option]', d. H. Versuchen Sie 'Gradle -Pversion = 1.0 build'. Etwas Glück? –

Antwort

8

Sie nicht in der Lage sind Eigenschaften Linie vom Befehl bestehenden Projekt außer Kraft zu setzen, werfen Sie einen Blick here. So versuchen, eine Version Variable, um etwas von der Version unterscheidet umbenennen und setzen Sie sie mit -P Flagge vor Befehl, wie:

gradle -PprojVersion=10.2.10 build 

Und dann in Ihrem build.gradle

if (project.hasProperty('projVersion')) { 
    project.version = project.projVersion 
} else { 
    project.version = '10.0.0' 
} 

Oder wie du mit? : Betreiber

+0

oder: 'project.version = project.findProperty ('projVersion')?: '10 .0.0'' – Ajax

+0

oder 'version = findProperty 'projVersion'?: '10 .0.0'' wenn Sie die Kürze – Ajax

+0

bewerten oder als Antwort:' version = (findProperty ('version') == 'unspezifiziert')? '10 .0.0 ': Version' – Ajax

6

Wenn Sie version Eintrag gradle.properties Datei verschieben können Sie auch:

gradle clean build -Dorg.gradle.project.version=1.1 
+3

'-Dorg.gradle.project.version' ist viel zu lang :-) Es ist eigentlich ausreichend,' -Pversion = 1.1' zu liefern. – thokuest

+0

Ja, könnte auch sein. – Opal

13

Ich habe festgestellt, dass Sie die Eigenschaft in der Datei "gradle.properties" festlegen müssen, und referenzieren Sie sie in build.gradle, damit die obige Lösung funktioniert. Stellen Sie außerdem sicher, dass die Optionen vor dem Befehl stehen (wie oben erwähnt).

gradle.properties Inhalt:

version=1.0.12 

build.gradle Inhalt:

gradle -Pversion=1.0.13 publish 
+0

Dies ist die beste Antwort, leicht reproduzierbar ohne jedes Build.gradle-Skript zu überladen. –

3

Wenn Sie ein benötigen:

version "${version}" 

Version kann dann mit auf der Kommandozeile außer Kraft gesetzt werden Standardversion anders als 'unspezifiziert':

version = "${version != 'unspecified' ? version : 'your-default-version'}" 

Pass-Version über die Kommandozeile:

gradle build -P version=1.0 
1

version = (findProperty('version') == 'unspecified') ? '0.1' : version

Verwandte Themen