Wie man jenkins trigger ein zu bauen, die auf eine abhängige Projekte, wenn eine Abhängigkeit erstellen
Ich habe was zu sein scheint eine einfache Frage zu, wie das einrichten Jenkins und maven 3.
Der Einfachheit halber sagen wir mal, wir haben vier Projekte:
Modell, die keine Abhängigkeiten
Commons, die je nach Modell
Server das hängt davon ab, Gemeinsame und Modell
Frontend, die je nach Modell
Was ich erreichen will ist, dass ein Erfolg bauen auf dem Modell löst der neue build auf alle Projekte, die in seiner pom hat eine Abhängigkeit auf das Modell (hier Üblich, Server-und Frontend)
Wenn Gemeinsame fehlschlägt, dann gibt es keine Notwendigkeit, build-Server.
Im obigen Fall scheint es, dass ich dieses Problem beheben, indem Sie manuell einrichten abhängigen Projekte am Modell und Commons, aber diese Informationen können bereits in den pom-Dateien für jedes Projekt (Server-und Frontend -) das lässt mich zum Schluss kommen/wollen, dass Jenkins in der Lage sein sollten, um dies herauszufinden, durch es selbst.
Kann Jenkins abzuleiten, die Abhängigkeitsstruktur durch das Parsen der pom auf jedes Projekt definiert in Jenkins und tun, irgendeine Art von optimaler build-Reihenfolge /Abhängigkeit Behandlung automatisch oder muss ich im setup "- Block zu bauen, wenn die upstream-Projekt ist das bauen" und "Bauen, nachdem andere Projekte werden gebaut [Liste der abhängigen Projekte]", wie oben beschrieben ?
Ich bin mit Jenkins version 1.473 und Maven 3.
Unser maven-Projekt pom ist verwenden Sie nicht die Eltern oder Modul-tag.
/Benjamin
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die beste Lösung für so etwas ist das erstellen einer multi-Modul bauen die Ergebnisse in der folgenden Struktur:
In jedem Modul ist zum Beispiel in commons-definieren Sie eine Abhängigkeit zu dem Modell, Modul, etc.
Die build-Reihenfolge erfolgt automatisch durch maven.
Mit einer solchen Art von Projekt Sie können gehen Sie einfach auf die Stamm-und tun:
Können Sie auch verwenden:
die build-server, sondern auch die davon abhängigen Module automatisch.
Angenommen, Sie wollen stick mit 4 einzelnen builds eher als ein multi-Modul bauen, dann ist der Weg, es zu tun ist in jedem der 4 Projekte aktivieren Sie das Kontrollkästchen unter build-Trigger
"Bauen, wenn ein SNAPSHOT-Abhängigkeit wird gebaut"
Dann machen Sie einen Check-in-Modell, jenkins beginnt ein build des Projekts basiert auf der SVN-polling, wenn der build abgeschlossen ist, sehen Sie, dass common hat eine Abhängigkeit auf das Modell, und so löst es einen build der gemeinsame um zu sehen, ob er noch baut gegen das aktualisierte Modell.
Den jenkins-jobs geschaffen werden müssen, wie maven jobs für diese option vorhanden sein. Es ist nicht anwendbar auf free-style-Projekte, auch wenn Sie ein Skript ausführen, und das passiert zum aufrufen von maven.
Zwei Lösungen.
Erstellen Sie ein Modul pom über die anderen Projekte, die nur erklären, die build-Reihenfolge (Modell -, commons -, server-und frontend). Und nur installieren Sie dieses Projekt in Jenkins
In jedem job, es ist das Kontrollkästchen zu aktivieren, die in der form "was ist die Auslösung der build" --> bauen Sie nach Projekten. (Der name der option sind wahrscheinlich nicht genau das, was ich geschrieben habe, da meine Jenkins konfiguriert ist auf Französisch...)