Quelle est la différence entre mvn clean install
y mvn install
?
J'ai toujours pensé qu'installer incluant le nettoyage comme une de ses phases... jusqu'à ce que je voie ceci
Quelle est la différence entre mvn clean install
y mvn install
?
clean
est sa propre phase du cycle de vie de construction (qui peut être considérée comme une action ou une tâche) dans Maven. mvn clean install
indique à Maven de faire le clean
dans chaque module avant d'exécuter le install
pour chaque module.
Cela permet d'effacer tous les fichiers compilés que vous avez, en vous assurant que vous compilez réellement chaque module à partir de zéro.
J'ai toujours pensé qu'installer incluant le nettoyage comme une de ses phases... jusqu'à ce que je voie ceci
@shanyangqu Malheureusement, non. clean
est dans un cycle de vie distinct Il n'est donc pas appelé par défaut.
1. Re " peut être considéré comme une action ou une tâche " : Les phases Maven ne sont pas actions o tâches . S'il n'y a pas d'objectif de plugin lié à une phase, ni une action ni une tâche, soit rien est fait. Une phase est plus une étape ou un stade . 2. Re " faire le clean
phase " : Avec mvn clean
il passe le pre-clean
y el clean
phase de la clean
cycle de vie et exécute les objectifs des plugins liés à chaque phase. 3. Re " effacer tous les fichiers compilés " : Non seulement ceux-là, mais tout ce qui réside sous ${project.build.directory}
: <artifact>.jar
, ressources, dossiers, etc.
Maven vous permet de spécifier soit les objectifs, soit les phases du cycle de vie sur la ligne de commande (ou les deux).
clean
y install
sont deux phases différentes de deux cycles de vie différents à laquelle les différents objectifs des plugins sont liés (soit par défaut, soit par explicitement dans votre pom.xml )
Le site clean
par convention, est destinée à rendre une construction reproductible, c'est-à-dire qu'elle nettoie tout ce qui a été créé par les constructions précédentes. Dans la plupart des cas, elle le fait en appelant clean:clean
qui supprime le répertoire lié à ${project.build.directory}
(généralement appelé "cible")
"Installer" n'est pas un cycle de vie. C'est une phase du cycle de vie par défaut. Bien qu'il existe un cycle de vie "clean", ce paramètre spécifie la phase "clean" du cycle de vie "clean", et non le cycle de vie "clean" lui-même.
Il y a en fait 4 éléments nommés clean
: le cycle de vie et l'une de ses phases ; la Préfixe de plugin du Maven Clean Plugin et l'un de ses objectifs.
Vous pouvez appeler plus d'une objetivo objectif avec maven. mvn clean install
appelle clean
d'abord, puis install
. Vous devez nettoyer manuellement, car le nettoyage n'est pas une norme. objetivo et non exécuté automatiquement à chaque installation.
clean
supprime le dossier cible - il supprime tous les fichiers de classe, la documentation java, les jars, les rapports, etc. Si vous ne clean
alors maven ne fera que "ce qui doit être fait", comme il ne compilera pas les classes lorsque les fichiers sources correspondants n'ont pas changé (en bref).
nous l'appelons objetivo dans la fourmi et objectif dans maven
Je pense que dans ce contexte, nettoyer et installer sont des phases du cycle de vie, pas des objectifs.
Pour s'en tenir aux termes de Maven :
http://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html#Lifecycle_Reference
Il y a en fait quatre éléments nommés clean
: clean
cycle de vie avec son clean
phase, clean
préfixe pour le maven-clean-plugin
avec son clean
but. Voir également le commentaire sur cette réponse à Maven : Cycle de vie vs. phase vs. plugin vs. objectif .
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.