Können wir den Maven-Build an dem Punkt starten, an dem er fehlgeschlagen ist?

85

Angenommen, ich mache einen vollständigen Build für mein großes Projekt mit 7 Modulen und für das 6. Modul ist der Build fehlgeschlagen, weil ein Test fehlgeschlagen ist. Gibt es eine Möglichkeit, den Build an dem Punkt zu starten, an dem er fehlgeschlagen ist?

Shekhar
quelle

Antworten:

130

Sie können den Build ab dem 6. Modul mit -rfoder fortsetzen --resume-from:

-rf, --resume-from
          Setzen Sie den Reaktor aus dem angegebenen Projekt fort

Weitere Informationen finden Sie in den erweiterten Reaktoroptionen .

Pascal Thivent
quelle
Danke dafür. Ich werde es versuchen
Shekhar
1
Das ist gut, für Teilprojekte nur subproject/subsubprojectals Parameter verwenden
akostadinov
13
Beispiel:maven -rf <module name> clean install
Zoltán
9
Dies funktionierte nur bei mir, wenn ich dem Modulnamen einen Doppelpunkt voranstellte, z mvn -rf :moduleName install. (Ich weiß nicht genau, warum der Doppelpunkt benötigt wird, aber es scheint - zumindest für mein Setup.)
Steve Chambers
3
Dies funktioniert anscheinend nur, wenn Ihr ursprünglicher Build ein installZiel hatte, da der fortgesetzte Build dann die Artefakte abrufen kann, die bereits aus Ihrem lokalen Maven-Repository erstellt wurden, um Abhängigkeiten von ihnen aufzulösen. Ich finde es eine schlechte Praxis, installBuilds auszuführen, da Sie Ihr lokales Repository mit Snapshots überladen und möglicherweise von einem älteren Snapshot abhängig sind, als Sie erwarten. Sieht aus wie bei Builds, bei denen Sie nur packageund nicht verwenden install. Die Verwendung -rfist keine Option: Sie müssen den gesamten Build ausführen.
Frans
12

Hier ist das Beispiel

mvn clean install -rf :your-module
M Sach
quelle
9

Mit dem -rfBefehl können Sie den Build von jedem gewünschten Modul aus fortsetzen . Wenn Ihr Build beispielsweise in myproject-proxy fehlgeschlagen ist, können Sie den folgenden Befehl verwenden:

mvn -rf myproject-proxy clean install
user3401235
quelle
Ich musste einen Doppelpunkt einfügen, damit dies funktioniert, z. B. -rf: yourModule Siehe die anderen Antworten.
Gapmeister66
8

Schauen Sie sich die Maven-Zusammenfassung an und Sie werden die ausgeführten Module sehen und sehen, wo Maven gestoppt ist. dann versuchen Sie dies:

mvn clean install-Dmaven.test.skip=true -rf :yourModule
Antonio Martin
quelle
-1

Syntax: mvn -rf Modulname mavengoal oder mvn --resume-from Modulname mavengoal

Beispiel: Neuinstallation von mvn -rf admin-module oder Neuinstallation von mvn --resume-from admin-module

scott_dennis
quelle
-rfist nicht kurz für --remove-from. Es ist die Abkürzung für--resume-from
Gili
-2

Sie können den Build von Modul 6 separat ausführen, um festzustellen, ob er immer noch fehlschlägt. Ich befürchte jedoch, dass Sie alle Module von Anfang an erstellen müssen, wenn Sie den "großen" Build ausführen möchten.

Bearbeiten: Natürlich werden die nachfolgenden Builds schneller sein, da der Code der Module 1-5 bereits kompiliert ist, es sei denn, Sie führen Clean als Teil Ihres Builds aus.

Fisch
quelle
Ja. Ich weiß das. Aber ich suchte nach einer Möglichkeit, den Build an dem Punkt zu starten, an dem er fehlgeschlagen ist.
Shekhar