Was genau sind die Unterschiede zwischen mvn clean package
und mvn clean install
? Wenn ich beide Befehle ausführe, scheinen sie beide dasselbe zu tun.
Nun, beide werden sauber. Das bedeutet, dass sie den Zielordner entfernen. Die eigentliche Frage ist, was ist der Unterschied zwischen Paket und Installation?
package
wird Ihren Code kompilieren und auch packen. Wenn Ihr Pom beispielsweise angibt, dass das Projekt ein Jar ist, erstellt es ein Jar für Sie, wenn Sie es packen, und legt es (irgendwo im Zielverzeichnis) (standardmäßig).
install
wird kompiliert und gepackt, das Paket wird jedoch auch in Ihrem lokalen Repository abgelegt. Dadurch können andere Projekte darauf verweisen und es aus Ihrem lokalen Repository beziehen.
package erzeugt Jar/War gemäß der POM-Datei . install installiert die generierte JAR-Datei im lokalen Repository für andere Abhängigkeiten, falls vorhanden.
install phase kommt nach package phase
Was Clean bewirkt (in beiden Befehlen gemeinsam) - Entfernt alle Dateien, die vom vorherigen Build generiert wurden
Um den Unterschied zwischen den Befehlen package und install zu erkennen, müssen Sie zunächst denLebenszyklus eines Maven-Projektsverstehen.
Dies sind die Standard-Lebenszyklusphasen in Maven
Wenn Sie einen Befehl für eine der Lebenszyklusphasen ausführen, führt Maven die einzelnen Standardlebenszyklusphasen der Reihe nach aus, bevor der Befehl selbst ausgeführt wird.
reihenfolge der Ausführung
validieren >> kompilieren >> testen (optional) >> Paket >> überprüfen >> installieren >> bereitstellen
wenn Sie also den Befehlmvn packageausführen, werden die Befehle für alle Lebenszyklusphasen bis package ausgeführt
validiere >> kompiliere >> test (optional) >> package
und wasmvn installbetrifft, werden die Befehle für alle Lebenszyklusphasen bis zur Installation ausgeführt, einschließlich des Pakets
validieren >> kompilieren >> testen (optional) >> Paket >> überprüfen >> installieren
Im Grunde bedeutet dies, dass install command alles macht, was package command macht, und noch einiges mehr (installiere das Paket in das lokale Repository, um es als Abhängigkeit in anderen Projekten lokal zu verwenden).
Quelle: Maven-Lebenszyklusreferenz
Paket & Installation sind verschiedene Phasen im Lebenszyklus von Maven Build. Die Paketphase führt alle vorherigen Phasen aus und beendet das Packen des Projekts als Glas. Auf ähnliche Weise werden in der Installationsphase alle vorherigen Phasen ausgeführt und schließlich das Projekt lokal für andere abhängige Projekte installiert.
Um den Lebenszyklus von Maven Build zu verstehen, gehen Sie bitte auf den folgenden Link https://ayolajayamaha.blogspot.in/2014/05/difference-between-mvn-clean-install.html
package
fügt dem jar
-Ordner paketierte war
oder target
hinzu. Wir können dies überprüfen, wenn der Zielordner (mit mvn clean
) geleert und dann mvn package
..__ ausgeführt wird.install
wird all die Dinge erledigen, die package
tut, zusätzlich wird auch das Paket jar
oder war
im lokalen Repository hinzugefügt. Wir können es durch einen Check in Ihrem .m2
-Ordner bestätigen.