En quoi «package propre mvn» et «installation propre mvn» sont-ils différents?
277
Quelles sont exactement les différences entre mvn clean packageet mvn clean install? Lorsque j'exécute ces deux commandes, elles semblent toutes les deux faire la même chose.
Un package (le compile dans la cible) et sur les installations (le compile et le place dans votre référentiel) Vous devez le faire plus tard si vous souhaitez utiliser cette version dans un autre module.
Peter Lawrey
3
Peut-être que cela devrait être rouvert? Il est parfaitement possible de répondre et je n'ai pas eu de difficulté à répondre. De plus, si quelqu'un est nouveau pour Maven, il est facile de voir comment les deux phases semblent faire la même chose. Je vais le modifier pour essayer de le rendre moins vague.
Daniel Kaplan
Réponses:
371
Eh bien, les deux vont nettoyer. Cela signifie qu'ils vont supprimer le dossier cible. La vraie question est quelle est la différence entre le package et l'installation?
packagecompilera votre code et le conditionnera également. Par exemple, si votre pom indique que le projet est un bocal, il créera un bocal pour vous lorsque vous le conditionnerez et le placerez quelque part dans le répertoire cible (par défaut).
installcompilera et conditionnera, mais il placera également le package dans votre référentiel local. Cela permettra à d'autres projets de s'y référer et de le récupérer dans votre référentiel local.
Pourquoi l'installation de mvn est-elle plus rapide que le package mvn?
lostintranslation
9
@SharadHolani car les builds sont incrémentiels. mvn clean installn'est pas plus rapide que mvn package.
OrangeDog
Pour mon projet, l'assemblage du paquet mvn: simple qui construit le gros pot prend plus de temps qu'une installation mvn. Empaqueter et installer les deux pots de graisse équivalents?
lostintranslation
1
@RakeshYadav oui c'est le cas
Daniel Kaplan
117
Ce que fait Clean (commun dans les deux commandes) - supprime tous les fichiers générés par la version précédente
En ce qui concerne la différence entre le package de commandes et l' installation , vous devez d'abord comprendre le cycle de vie d'un projet maven
Ce sont les phases de cycle de vie par défaut dans Maven
valider - valider le projet est correct et toutes les informations nécessaires sont disponibles
compile - compile le code source du projet
test - testez le code source compilé en utilisant un cadre de test unitaire approprié. Ces tests ne devraient pas exiger que le code soit empaqueté ou déployé
package - prenez le code compilé et empaquetez-le dans son format distribuable, tel qu'un JAR.
vérifier - effectuer des vérifications sur les résultats des tests d'intégration pour s'assurer que les critères de qualité sont respectés
install - installe le package dans le référentiel local, pour une utilisation en tant que dépendance dans d'autres projets localement
deploy - fait dans l'environnement de construction, copie le package final dans le référentiel distant pour le partager avec d'autres développeurs et projets.
Comment Maven fonctionne, si vous exécutez une commande pour l'une des phases du cycle de vie, il exécute chaque phase du cycle de vie par défaut dans l'ordre, avant d'exécuter la commande elle-même.
Et comme pour l' installation mvn , il exécute les commandes pour toutes les phases du cycle de vie jusqu'à l'installation, qui comprend également le package
Donc, ce que cela signifie, les commandes d' installation font tout ce que fait la commande de package et quelques autres (installez le package dans le référentiel local, pour l'utiliser comme dépendance dans d'autres projets localement)
Cela devrait être marqué comme réponse acceptée. Cela définit clairement et aide l'OP à comprendre quelles sont les différentes phases du cycle de vie de maven et pourquoi l'installation de mvn inclut le package mvn mais pas l'inverse.
Jasmeet Singh
1
Maven en bref, super!
CodeSlave
19
le package générera Jar / war selon le fichier POM.
install installera le fichier jar généré dans le référentiel local pour les autres dépendances éventuelles.
la phase d' installation vient après la phase de package
le premier emballage aura lieu, puis ces packages (jar / war) seront installés.
Abdul Gafoor
1
"La phase d'installation suit la phase de package". La façon dont il est actuellement formulé est à l'envers. "Suivi de" signifie "après".
Charles Wood
11
Le package et l'installation sont différentes phases du cycle de vie de la construction maven. La phase de package exécutera toutes les phases avant cela et elle s'arrêtera avec le conditionnement du projet sous forme de bocal. De même, la phase d'installation exécutera toutes les phases précédentes et installera enfin le projet localement pour les autres projets dépendants.
Qu'entendez-vous par «et enfin installer le projet localement pour d'autres projets dépendants»
Arun Gowda
2
@ArunGowda signifie que dans le .m2 qui est créé dans votre système lors de l'installation du maven sera ajouté avec les projets que vous empaquetez et sera disponible pour d'autres projets en tant que dépendance.
JAVA
une image est un 1000 mots, quelqu'un a un diagramme?
@MrCholo mvn install mettra le pot / war dans votre dépôt maven . L'endroit où toutes vos dépendances Maven sont stockés, généralement ~ / .m2
BRT
6
packageajoutera emballé jarou warà votre targetdossier, nous pouvons le vérifier quand, nous viderons le dossier cible (en utilisant mvn clean) puis exécuter mvn package.
installfera tout ce qui se packagefait, en plus il ajoutera également un packaged jarou warun dépôt local. Nous pouvons le confirmer en archivant votre .m2dossier.
package
etinstall
.Réponses:
Eh bien, les deux vont nettoyer. Cela signifie qu'ils vont supprimer le dossier cible. La vraie question est quelle est la différence entre le package et l'installation?
package
compilera votre code et le conditionnera également. Par exemple, si votre pom indique que le projet est un bocal, il créera un bocal pour vous lorsque vous le conditionnerez et le placerez quelque part dans le répertoire cible (par défaut).install
compilera et conditionnera, mais il placera également le package dans votre référentiel local. Cela permettra à d'autres projets de s'y référer et de le récupérer dans votre référentiel local.Documentation
la source
mvn clean install
n'est pas plus rapide quemvn package
.Ce que fait Clean (commun dans les deux commandes) - supprime tous les fichiers générés par la version précédente
En ce qui concerne la différence entre le package de commandes et l' installation , vous devez d'abord comprendre le cycle de vie d'un projet maven
Ce sont les phases de cycle de vie par défaut dans Maven
Comment Maven fonctionne, si vous exécutez une commande pour l'une des phases du cycle de vie, il exécute chaque phase du cycle de vie par défaut dans l'ordre, avant d'exécuter la commande elle-même.
ordre d'exécution
Ainsi, lorsque vous exécutez le package de commande mvn , il exécute les commandes pour toutes les phases du cycle de vie jusqu'au package
Et comme pour l' installation mvn , il exécute les commandes pour toutes les phases du cycle de vie jusqu'à l'installation, qui comprend également le package
Donc, ce que cela signifie, les commandes d' installation font tout ce que fait la commande de package et quelques autres (installez le package dans le référentiel local, pour l'utiliser comme dépendance dans d'autres projets localement)
Source: référence du cycle de vie Maven
la source
le package générera Jar / war selon le fichier POM. install installera le fichier jar généré dans le référentiel local pour les autres dépendances éventuelles.
la phase d' installation vient après la phase de package
la source
Le package et l'installation sont différentes phases du cycle de vie de la construction maven. La phase de package exécutera toutes les phases avant cela et elle s'arrêtera avec le conditionnement du projet sous forme de bocal. De même, la phase d'installation exécutera toutes les phases précédentes et installera enfin le projet localement pour les autres projets dépendants.
Pour comprendre le cycle de vie de la construction de maven, veuillez consulter le lien suivant https://ayolajayamaha.blogspot.in/2014/05/difference-between-mvn-clean-install.html
la source
package
ajoutera emballéjar
ouwar
à votretarget
dossier, nous pouvons le vérifier quand, nous viderons le dossier cible (en utilisantmvn clean
) puis exécutermvn package
.install
fera tout ce qui sepackage
fait, en plus il ajoutera également un packagedjar
ouwar
un dépôt local. Nous pouvons le confirmer en archivant votre.m2
dossier.la source