Jenkins baut ein Produkt, das aus vielen Maven-Projekten besteht? (mit Jenkins Pipeline Plugin?)

Wir haben ein Produkt, das aus vielen Maven-Projekten besteht, die voneinander abhängen. Alle diese Maven-Projekte sind in einem einzigen Projekt zusammengefasst, das das Endprodukt liefert.

Die Maven-Projekte haben denselben Lebenszyklus. Mit anderen Worten, sie werden nicht von separaten Teams mit explizitem @ verwalte<dependency> Änderungen, um neuere Versionen anderer Projekte zu übernehmen. Wenn jemand etwas in einem der Projekte ändert, sollte das Ergebnis ohne weitere Änderungen direkt in das Endprodukt eingehen.

Wir verwenden Jenkins als unser kontinuierliches Integrationstool.

Die Hauptwünsche, die wir haben, lauten wie folgt:

Es müssen nicht alle projektübergreifenden Abhängigkeiten in die Jenkins-Konfiguration kopiert werden: Diese sollten sich an einer einzigen Stelle befinden, idealerweise impom.xml files. Vermeiden Sie unnötige Builds: Erstellen Sie bei einer SCM-Änderung nur die Projekte, die möglicherweise betroffen sind.Im Falle von Diamant Abhängigkeiten (C hängt von B1 und B2 ab, die beide von A abhängen). Wenn das niedrigste (A) geändert wird, sollte das Endprodukt (C) immer die Version von A verwenden, die auch zum Erstellen / Testen von B1 und B1 verwendet wurde B2.

Frag: Was ist der beste Ansatz, um dies mit Jenkins zu tun?

Wir überlegen derzeit, einen einzelnen Job mithilfe des Jenkins-Pipeline-Plugins zu verwenden, das die Maven-Abhängigkeiten und die SCM-Änderungen analysiert, entscheidet, was in welcher Reihenfolge erstellt werden muss, und dann die Projekte erstellt.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage