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.