Was genau sind die Unterschiede zwischen mvn clean package
und mvn clean install
? Wenn ich diese beiden Befehle ausführe, scheinen beide dasselbe zu tun.
Was genau sind die Unterschiede zwischen mvn clean package
und mvn clean install
? Wenn ich diese beiden Befehle ausführe, scheinen beide dasselbe zu tun.
Antworten:
Nun, beide werden sauber. Das heißt, sie entfernen den Zielordner. Die eigentliche Frage ist, was ist der Unterschied zwischen Paket und Installation?
package
kompiliert Ihren Code und verpackt ihn auch. Wenn Ihr POM beispielsweise angibt, dass das Projekt ein JAR ist, erstellt es ein JAR für Sie, wenn Sie es verpacken und irgendwo im Zielverzeichnis ablegen (standardmäßig).
install
wird kompiliert und verpackt, aber es wird auch das Paket in Ihrem lokalen Repository ablegen. Dadurch können andere Projekte darauf verweisen und es aus Ihrem lokalen Repository abrufen.
mvn clean install
ist nicht schneller als mvn package
.
Was clean macht (gemeinsam in beiden Befehlen) - entfernt alle Dateien, die vom vorherigen Build generiert wurden
Kommend auf die Differenz zwischen den Befehlen verpacken und installieren , müssen Sie zunächst das verstehen Lebenszyklus eines Maven - Projekt
Dies sind die Standardlebenszyklusphasen in maven
Wenn Sie einen Befehl für eine der Lebenszyklusphasen ausführen, führt Maven jede Standardlebenszyklusphase der Reihe nach aus, bevor Sie den Befehl selbst ausführen.
Reihenfolge der Ausführung
validieren >> kompilieren >> testen (optional) >> paket >> verifizieren >> installieren >> bereitstellen
Wenn Sie also den Befehl mvn package ausführen, werden die Befehle für alle Lebenszyklusphasen bis package ausgeführt
validieren >> kompilieren >> testen (optional) >> Paket
Bei der mvn-Installation werden die Befehle für alle Lebenszyklusphasen bis zur Installation ausgeführt, einschließlich des Pakets
validieren >> kompilieren >> testen (optional) >> paket >> verifizieren >> installieren
Effektiv bedeutet dies, dass Installationsbefehle alles tun, was das Paket beinhaltet tun, und noch mehr (Installieren Sie das Paket im lokalen Repository, um es als Abhängigkeit in anderen Projekten lokal zu verwenden).
Quelle: Maven-Lebenszyklusreferenz
Das Paket generiert Jar / War gemäß POM-Datei. install installiert die generierte JAR-Datei im lokalen Repository für andere Abhängigkeiten, falls vorhanden.
installieren Phase kommt nach Paket Phase
Paket & Installation sind verschiedene Phasen im Maven-Build-Lebenszyklus. Die Paketphase führt alle vorherigen Phasen aus und endet mit dem Verpacken des Projekts als Glas. In ähnlicher Weise führt die Installationsphase alle vorherigen Phasen aus und installiert das Projekt schließlich lokal für andere abhängige Projekte.
Um den Lebenszyklus eines Maven-Builds zu verstehen, klicken Sie bitte auf den folgenden Link: https://ayolajayamaha.blogspot.in/2014/05/difference-between-mvn-clean-install.html
package
wird gepackt jar
oder war
zu Ihrem target
Ordner hinzugefügt. Wir können es überprüfen, wenn wir den Zielordner (mit mvn clean
) leeren und dann ausführen mvn package
.
install
wird alle Dinge tun, die tun package
, zusätzlich wird es gepackt jar
oder auch war
im lokalen Repository hinzufügen . Wir können dies bestätigen, indem wir Ihren .m2
Ordner einchecken .
package
undinstall
.