Jenkins: Wie man eine Variable aus einer vorgefertigten Shell im Maven "Ziele und Optionen" benutzt

Ich habe einen Maven-Job in Jenkins. Vor dem eigentlichen Build-Schritt habe ich einen Pre-Build-Schritt "Shell ausführen". In dieser Shell setze ich eine Variable:

REVISION=$(cat .build_revision)

Ich möchte diese Variable im Maven-Build-Job unter "Ziele und Optionen" verwenden:

clean install -Drevision=${REVISION}

Aber das funktioniert nicht! Die "Drevision" ist auf "$ {REVISION}" eingestellt, nicht auf den tatsächlichen Wert von $ {REVISION}. Ausgabe:

Executing Maven:  -B -f /home/gerrit/.jenkins/jobs/<job_name>/workspace/pom.xml clean install -Drevision=${REVISION}

Es funktioniert mit Jenkins Umgebungsvariablen:

clean install -Dbuild=${BUILD_NUMBER}

Es setzt "Dbuild" auf die tatsächliche Build-Nummer. Ausgabe:

Executing Maven:  -B -f /home/gerrit/.jenkins/jobs/<job_name>/workspace/pom.xml clean install -Dbuild=54

Meine Frage: Wie verwende ich eine Shell-Variable in Maven "Ziele und Optionen"?

BEARBEITEN:

Ich habe versucht mitJenkins EnvInject Plugin "Injizieren von Umgebungsvariablen" nach der vorab erstellten Shell, und auf meine Variable kann jetzt z. Post-Build-Shells, aber es ist immer noch nicht in Maven "Ziele und Optionen" verfügbar.

Dann ist es möglich, mit dem EnvInject-Plugin "Umgebungsvariablen in den Build-Prozess einzufügen", wodurch diese Variablen tatsächlich in Maven "Ziele und Optionen" verfügbar gemacht werden. und unterstützen keine Ausdrucksauswertungen.

Antworten auf die Frage(5)

Ihre Antwort auf die Frage