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.