Was ist der Unterschied zwischen mvn clean install
und mvn install
?
clean
ist eine eigene Build-Lebenszyklus-Phase (die als Aktion oder Aufgabe betrachtet werden kann) in Maven. mvn clean install
weist Maven an, die clean
-Phase in jedem Modul durchzuführen, bevor die install
-Phase für jedes Modul ausgeführt wird.
Dadurch werden alle kompilierten Dateien gelöscht, und es wird sichergestellt, dass jedes Modul von Grund auf neu kompiliert wird.
In Maven können Sie entweder Ziele oder Lebenszyklusphasen in der Befehlszeile angeben (oder beides).
clean
und install
sind zwei verschiedene Lebenszyklusphasen , an die verschiedene Plugin-Ausführungen gebunden sind (entweder per default oder explizit) in deiner pom.xml )
Die clean
-Phase soll gemäß Konvention einen Build reproduzierbar machen, d. H. Alles bereinigen, was durch vorherige Builds erstellt wurde. In den meisten Fällen geschieht dies durch Aufrufen von clean:clean
, wodurch das an ${project.build.directory}
Gebundene Verzeichnis gelöscht wird (normalerweise "Ziel" genannt).
Sie können mehrere Anrufe tätigen ziel Ziel mit Maven. mvn clean install
ruft zuerst clean
und dann install
auf. Sie müssen manuell reinigen, da die Reinigung kein Standard ist ziel Ziel und nicht automatisch bei jeder Installation ausgeführt.
clean
entfernt den Zielordner - es löscht alle Klassendateien, die Java docs, die Gläser, Berichte und so weiter. Wenn Sie nicht clean
, dann wird maven nur "tun, was zu tun ist", als würde es keine Klassen kompilieren, wenn sich die entsprechenden Quelldateien nicht geändert haben (in Kürze).
wir nennen es Ziel in Ant und Ziel in Maven
So halten Sie sich an die Maven-Begriffe:
http://maven.Apache.org/guides/introduction/introduction-to-the-lifecycle.html#Lifecycle_Reference
Das Gleiche gilt für @Andreas_D. Wenn Sie in Ihrem Projekt "Spring von einer Version auf eine andere aktualisieren" sagen, ohne eine Bereinigung vorzunehmen, werden Sie beide in Ihrem Artefakt finden. Ich bin viel darauf gestoßen, als ich mit Maven Flex-Entwicklung gemacht habe.