wake-up-neo.com

Wie unterscheidet sich "mvn clean install" von "mvn install"?

Was ist der Unterschied zwischen mvn clean install und mvn install?

179
Leonid

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.

186
Powerlord

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

42

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

35
Andreas_D

So halten Sie sich an die Maven-Begriffe:

  • "sauber" ist eine Phase des sauberen Lebenszyklus
  • "install" ist eine Phase des Standardlebenszyklus

http://maven.Apache.org/guides/introduction/introduction-to-the-lifecycle.html#Lifecycle_Reference

24
Puce

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.

3
mezmo