Ich habe ein Maven-Elternprojekt, das mehrere Kinder / Module hat ... Ich habe die folgende pom.xml für das Haupt / Eltern;
%Vor%Allerdings finde ich die tatsächliche Build-Reihenfolge anders ... Nach dem Build sieht die tatsächliche Reihenfolge wie folgt aus:
%Vor%Wo genau nimmt Maven in diesem Fall die Build-Reihenfolge?
Sie können die Erstellungsreihenfolge nicht manuell steuern:
Aus der Maven Projektdokumentation ( Anleitung zum Arbeiten mit mehreren Modulen ):
Reaktorsortierung
Weil Module innerhalb eines Multi-Modul-Builds voneinander abhängen können, Es ist wichtig, dass der Reaktor alle Projekte so sortiert, dass garantiert, dass jedes Projekt erstellt wird, bevor es benötigt wird.
Beim Sortieren von Projekten werden folgende Beziehungen berücksichtigt:
- eine Projektabhängigkeit von einem anderen Modul im Build
- eine Plugin-Deklaration, bei der das Plugin ein anderes Modul im Build ist
- eine Plugin-Abhängigkeit von einem anderen Modul im Build
- eine Build-Erweiterungserklärung für ein anderes Modul in der Build-Anweisung, die im Element deklariert ist (wenn keine andere Regel zutrifft)
Beachten Sie, dass nur "instanziierte" Referenzen verwendet werden - dependencyManagement- und pluginManagement-Elemente verursachen keine Wechseln Sie in die Sortierreihenfolge des Reaktors
Maven
hat die Modulerstellungsreihenfolge nicht von dem übernommen, was wir im Hauptteil pom.xml
definieren. Maven
entscheidet über die Reihenfolge, indem Modulabhängigkeiten mit anderen Modulen berücksichtigt werden.
In deinem Fall sollte definitiv Main-Ear
zuletzt bauen.
Betrachten wir folgendes Beispiel.
Ich habe das Modul A
, B
und C
. Das Modul A
hat eine Abhängigkeit vom Modul C
und B
, während das Modul C
eine Abhängigkeit vom Modul B
hat. Dann ist maven
Bauordnung