2013-01-14 7 views
5

Ich habe ein Gradle Multiprojekt gehostet in Mercurial Repo. Ich möchte meine Jenkins so einrichten, dass, wenn ich Änderungen in nur 1 Teilprojekt festlege, nur dieses Teilprojekt erstellt und in meinem Nexus Repo veröffentlicht wird.Erstellen Multiprojekt Gradle auf Jenkins

Kann mir jemand einen Tipp geben? Oder ist es überhaupt möglich?

Antwort

0

Wir haben unsere endgültige Lösung für die Zukunft hier.

Wir haben für jedes Teilprojekt einen separaten Jenkins-Job erstellt. Jenkins' Mercurial-Plugin ermöglicht ‚Module‘ zu spezifizieren:

Vermeiden Sie unnötige Builds durch ein Komma oder Leerzeichen Angabe getrennte Liste von ‚Modulen‘ im Repository. Ein Modul ist ein Verzeichnisname innerhalb des Repositorys, in dem sich dieses Projekt befindet. Wenn dieses Feld festgelegt ist, werden Änderungen außerhalb der angegebenen Module keinen Build auslösen (auch wenn das gesamte Repository aufgrund der Mercurial-Einschränkung ohnehin ausgecheckt ist).

Auf diese Weise werden unsere Jobs nur dann ausgelöst, wenn Änderungen im Überwachungs-Unterprojekt aufgetreten sind.

0

Ich denke, Sie müssen ein Projekt in Jenkins für jedes Teilprojekt erstellen.

Andere Option wäre zu finden, wenn es eine Möglichkeit gibt, die Repo-Synchronisierung abzufangen und zu sehen, was Teilprojekt geändert hat und den Build dynamisch ausführen.

2

Wir haben diese Art zu arbeiten.

Wir erstellen ein Projekt in Jenkins für jedes Gradle-Teilprojekt. Und in der Jenkins Konfiguration bauen wir nur das Teilprojekt von etwas zu tun, wie:

gradle clean :<subproject>:build 

Wir haben immer noch das Problem, dass der Auftrag für alle checkins zum gesamten Projekt gebrannt wird. Ich würde Jenkins nur konfigurieren, wenn es beim Unterprojekt eincheckt, aber ich weiß nicht, wie ich das festlegen soll.