web-dev-qa-db-fra.com

En quoi "paquet propre" et "installation propre" sont-ils différents?

Quelles sont exactement les différences entre mvn clean package et mvn clean install? Lorsque je lance ces deux commandes, elles semblent toutes les deux faire la même chose. 

170
Ben

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 package et install? 

package compilera votre code et le conditionnera également. Par exemple, si votre pom indique que le projet est un fichier jar, il en crée un pour vous lorsque vous le mettez en package et le placez quelque part dans le répertoire cible (par défaut).

install compilera et conditionnera, mais le placera également dans votre référentiel local. Cela permettra aux autres projets de s'y référer et de le récupérer à partir de votre référentiel local.

Documentation

245
Daniel Kaplan

package générera un fichier Jar/war conformément au fichier POM . install installera le fichier jar généré dans le référentiel local pour d’autres dépendances, le cas échéant.

install phase vient après package phase

14
Abdul Gafoor

Que fait clean (commun aux deux commandes) - supprime tous les fichiers générés par la construction précédente


En ce qui concerne la différence entre les commandes package et install , vous devez d’abord comprendre lecycle de vie d’un projet maven} _


Ce sont les phases du cycle de vie par défaut dans maven

  • valider - valider le projet et toutes les informations nécessaires sont disponibles
  • compile - compile le code source du projet
  • test - teste le code source compilé à l'aide d'un framework de test unitaire approprié. Ces tests ne doivent pas obliger le code à être empaqueté ou déployé
  • package - prend le code compilé et le conditionne dans son format distribuable, tel qu'un fichier JAR.
  • verify - effectue un contrôle des résultats des tests d'intégration pour s'assurer que les critères de qualité sont remplis
  • install - installe le paquet dans le référentiel local, pour l'utiliser comme 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.

Le fonctionnement de Maven est que, 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

validate >> compile >> test (optionnel) >> paquet >> verify >> installer >> deploy

ainsi, lorsque vous exécutez la commandepackage mvn, il exécute les commandes pour toutes les phases du cycle de vie jusqu'au package.

valider >> compiler >> test (optionnel) >> package

et comme pourmvn install, il exécute les commandes pour toutes les phases du cycle de vie jusqu'à l'installation, ce qui inclut également le package.

valider >> compiler >> tester (facultatif) >> package >> verify >> installer


Donc, effectivement, cela signifie que install orders fait tout ce que package command fait et plus encore (installez le paquet 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

11
Ketan R

Le package et l’installation sont diverses phases du cycle de vie de construction de maven. La phase d’emballage exécute toutes les phases précédentes et s’arrête avec l’emballage du projet sous forme de bocal. De même, la phase d'installation exécute toutes les phases précédentes et installe enfin le projet localement pour d'autres projets dépendants. 

Pour comprendre le cycle de vie de construction de maven, veuillez suivre le lien suivant: https://ayolajayamaha.blogspot.in/2014/05/difference-between-mvn-clean-install.html

9
Aarish Ramesh

package va ajouter jar ou war dans son dossier target. Nous pouvons le vérifier lorsque nous viderons le dossier cible (à l'aide de mvn clean), puis exécuterons mvn package.
install fera tout ce que package fait, en plus il ajoutera aussi un paquetage jar ou war dans le référentiel local. Nous pouvons le confirmer en consultant votre dossier .m2.

0
Nisarg Patil