2013-10-03 10 views
11

Ich richte einen jenkins-Slave auf einer Maschine ein, die ein Maven-Projekt mit nativem C-Code erstellen soll. Die Maschine selbst erweist sich jedoch als Problem. Die Maschine hostet ein ziemlich altes Programm, das viele Umgebungsvariablen wie JAVA_HOME verwendet, die maven richtig funktionieren muss. Um Maven auf dem Slave-Rechner laufen zu lassen, muss ich diese Umgebungsvariablen setzen, bevor maven, maven und andere Abhängigkeiten wie ssh ausgeführt werden. Ich kann nicht nur die Variablen permanent ändern, also brauche ich eine Möglichkeit, die en-Variable zu ändern, bevor ich den Maven-Build ausführe.Setze Umgebungsvariable vor dem Ausführen von maven (In einem jenkins-Build)

Ich kann den Build manuell ausführen, indem Sie die Umgebungsvariablen vor der Ausführung von MVN festlegen, und der Build funktioniert wie ein Charm. Aber ich brauche Jenkins, um den Build automatisch auszulösen.

Wie ich es sehe ich muss entweder: konfigurieren jenkins Umgebungsvariablen setzen, bevor Maven Ausführung oder Maven konfigurieren verwenden, um bestimmte Werte statt bestimmte Umgebungsvariablen (In einer solchen Art und Weise, dass jenkins die Ausführung umgehen kann)

Ihre Hilfe wird sehr geschätzt.

Antwort

16

Es gibt viele Möglichkeiten.

  • Konfigurieren der Knoten die Umgebungsvariable (unter Node Eigenschaften, überprüfen „Umgebungsvariablen“)
  • für Werkzeuge gesetzt Jenkins die notwendigen Umgebungen selbst. In der Knotenkonfiguration können Sie verschiedene Pfade für Werkzeuge festlegen, die in der Hauptkonfiguration konfiguriert sind (unter Knoteneigenschaften, "Werkzeugstandorte"). Ich glaube, dass Sie kein Plugin benötigen, um diese Option zu haben.
  • Verwenden Sie die EnvInject plugin (die Setenv Plugin ist veraltet)
  • Verwenden Sie die Envfile Plugin
  • setzen die Umgebungen Variablen vor dem manuellen Start von Maven. Sie müssen beide im selben Build-Schritt haben. (schlechteste Lösung)
  • Erstellen Sie eine Java/Maven-Konfiguration, die nur für diesen bestimmten Knoten gültig ist und in Ihrem Job verwendet wird. Dies funktioniert nur, wenn Ihr Job nur auf Ihrem speziellen Knoten und nirgendwo sonst ausgeführt wird.

schlage ich die erste oder zweite Option

0

Ich kann mir vorstellen, dass Jenkins die Einstellung von Umgebungsvariablen über die Benutzeroberfläche für die Jobkonfiguration unterstützt. Wenn nicht, können Sie sicherlich ein Skript schreiben, das Ihre Umgebung festlegt und jenkins das Skript ausführt, wenn Sie Ihren Build-Job ausführen.

+0

Ja, Jenkins verschiedene Weise unterstützt Umgebungsvariablen zu setzen. –

+0

Danke, dass du @PeterSchütze geholfen hast! – chad