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?

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 .


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

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

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

-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


-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.


Ja. Ich weiß das. Aber ich suchte nach einer Möglichkeit, den Build an dem Punkt zu starten, an dem er fehlgeschlagen ist.
Shekhar
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.