2017-04-13 3 views
0

Ich wurde beauftragt, Probleme in einem System vor der Zeit erstellt zu verwalten. Das System verwendet Jenkins als Systemintegrationswerkzeug und leider habe ich keine vorherigen Erfahrungen damit.Jenkins Job mit mehreren Maven Ziele

Das Problem ist folgendes: Wenn Sie die Schritte für den lokalen Build (über die Konsole) befolgen, werden die Archivdateien (.jars, .ear) korrekt erstellt. Wenn Sie einen Jenkins-Job verwenden, enthält eine .jar-Datei (nennen wir sie module-one.jar), die in .ear enthalten ist, keinen Ordner mit .xsb- und .class-Feldern. So.ear Anwendung wird falsch und ClassNotFoundException wird geworfen.

Schritte für Bauanträge vor Ort:

cd my_project_path 
cd ModuleOne 
mvn xmlbeans:xmlbeans 
mvn install 
cd .. 
mvn clean install 

Der Abschnitt Maven in Jenkins enthält nur dieses Ziel clean install (Screenshot unten im Abschnitt "Build"):


Also, was ich frage mich, ist wie die folgenden Maven-Aufgaben in Jenkins-Jobs hinzugefügt werden, die auf ModuleOne ausgeführt werden:

mvn xmlbeans:xmlbeans 
mvn install 
mvn xmlbeans:xmlbeans 
mvn install 

Meine Idee zu „Pre Steps“ Abschnitt zu gehen und folgendes Maven Ziel hinzufügen:

mvn xmlbeans:xmlbeans install 

Meine Fragen sind:
1. Wenn ich auf dem richtigen Weg bin, wie das Ziel zu definieren " mvn xmlbeans: xmlbeans install "wird genau auf ModuleOne ausgeführt?
2. Wenn ich nicht auf dem richtigen Weg bin, gibt es überhaupt irgendwelche Lösungen, dies mit Jenkins zu tun?

Hier ist ein Screenshot mit meinem Vorschlag für "Pre Steps". In der aktuellen Konfiguration (die überspringt, um ModulOne mit passenden .xsb- und .class-Feldern zu versehen) fehlt dieser Abschnitt, aber der Abschnitt "Build" ist so, wie er jetzt verwendet wird.

Maven build settings

Antwort

0

Ich denke, Ihr Ansatz ist gut! Aber auf "pre Schritte":

  • Remove "mvn" von Tore

  • Verwenden Erweiterte Konfiguration, um den Pfad Ihrer pom.xml angeben