web-dev-qa-db-fra.com

En quoi "mvn clean install" est-il différent de "mvn install"?

Quelle est la différence entre mvn clean install et mvn install?

179
Leonid

clean est sa propre phase de cycle de vie de génération (qui peut être considérée comme une action ou une tâche) dans Maven. mvn clean install indique à Maven d'effectuer la phase clean dans chaque module avant d'exécuter la phase install pour chaque module.

Cela efface tous les fichiers compilés que vous avez et veille à bien compiler chaque module à partir de rien.

186
Powerlord

Maven vous permet de spécifier les objectifs ou les phases du cycle de vie sur la ligne de commande (ou les deux).

clean et install sont deux phases de cycle de vie différentes , auxquelles les exécutions de plug-ins différentes sont liées (par défaut ou explicitement dans votre pom.xml )

La phase clean, conformément aux conventions, vise à rendre une construction reproductible, c’est-à-dire qu’elle nettoie tout ce qui a été créé par les versions précédentes. Dans la plupart des cas, il appelle - clean:clean , ce qui supprime le répertoire lié à _${project.build.directory}_ (généralement appelé "cible").

42

Vous pouvez appeler plus d'un cible but avec Maven. mvn clean install appelle clean d'abord, puis install. Vous devez nettoyer manuellement, car nettoyer n'est pas une norme cible objectif et non exécuté automatiquement à chaque installation.

clean supprime le dossier cible. Il supprime tous les fichiers de classe, les documents Java, les fichiers JAR, les rapports, etc. Si vous ne jouez pas clean, alors maven ne fera que "faire ce qui doit être fait", comme s'il ne compilait pas de classes lorsque les fichiers source correspondants n'ont pas été modifiés (en bref).

nous l'appelons cible dans ant et objectif dans maven

35
Andreas_D

Pour rester avec les termes Maven:

  • "clean" est une phase du cycle de vie propre
  • "installer" est une phase du cycle de vie par défaut

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

24
Puce

Idem pour @Andreas_D, de plus, si vous dites mettre à jour Spring d'une version à une autre de votre projet sans effectuer de nettoyage, vous obtiendrez les deux dans votre artefact. Je participais beaucoup à cela en développant Flex avec Maven.

3
mezmo