Mvn install ou Mvn package
Je suis nouveau sur Maven, j'ai un Java projet web avec maven configuré dans mon MyEclipse.
Maintenant, si j'ai modifié tous les fichiers java alors que dois-je faire Run as -> Mvn install
ou Mvn package
?
- Merci de poster votre
pom.xml
. C'est difficile à dire sans savoir ce que vous la configuration du projet est! mvn install
est utilisé à 95% du temps,mvn package
très rarement.- mvn install devraient seulement mettre votre pot dans un dépôt local - je ne vois pas vraiment de raison pour le faire avec le web (war) de projet?
Vous devez vous connecter pour publier un commentaire.
de http://maven.apache.org/guides/getting-started/maven-in-five-minutes.html
Donc la réponse à votre question, cela dépend si vous voulez qu'il en soit installé dans votre local repo. Installer permet également de faire fonctionner le paquet parce qu'il est supérieur à l'objectif de la phase de la pile.
deploy
n'. Si vous le remplacerpackage
, il ne sera pas déployé de Nexus.mvn install
est l'option qui est la plus souvent utilisée.mvn package
est rarement utilisé, seulement si vous déboguez un problème avec le processus de build maven.Voir: http://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html
Noter que
mvn package
ne fera que créer un fichier jar.mvn install
fera que et installer le pot (et de classe, etc.) les fichiers au bon endroit si d'autres dont dépend le code de ces pots.J'ai l'habitude de faire un
mvn clean install
; cela supprime latarget
répertoire et recrée tous les pots à cet endroit.Le propre de l'aide avec les inutiles ou supprimé des trucs qui peuvent parfois obtenir de la manière.
Plutôt que de débogage (de temps en temps) juste de recommencer tout le temps.
De la Cycle de vie de référence, installer mener à bien le projet de tests d'intégration, paquet ne sera pas.
Si vous avez vraiment besoin de ne pas installer les artefacts produits, utiliser au moins vérifier.
Aussi vous devriez noter que si votre projet est composé de plusieurs modules qui sont dépendantes les unes des autres, vous devez utiliser "installer" au lieu de "package", sinon votre build échoue, parce que quand vous utilisez la commande d'installation, le module va être emballé et déployé à référentiel local et puis si le module B besoins module A comme une dépendance, il peut accéder à partir de référentiel local.
Si vous êtes pas à l'aide d'un distance référentiel (comme artifactory), utiliser le bon vieux:
mvn clean install
Assez vieux sujet, mais autant que je sache, si vous exécutez votre propre référentiel (par exemple: avec artifactory) pour partager bocal au sein de votre équipe(s), vous pouvez utiliser
mvn clean deploy
à la place.
De cette façon, votre serveur d'intégration continue peut être sûr que toutes les dépendances sont correctement poussé dans votre dépôt distant. Si vous avez manqué l'un, mvn ne sera pas en mesure de trouver dans votre IC locale m2 référentiel.
package prend le code compilé et de les emballer dans sa distribuable format, comme un POT ou un fichier WAR.
installer - installer le paquet dans le dépôt local, pour une utilisation en tant que dépendance dans d'autres projets à l'échelle locale
La bon façon est
mvn package
si vous avez fait les choses correctement, pour la partie centrale de votre construction, puis il devrait y avoir aucun besoin d'installer les packages dans le référentiel local.En outre, si vous utilisez Travis vous pouvez "cache" de votre dépendances, car il ne touchera pas à votre
$HOME.m2/repository
si vous utilisez le paquet pour votre propre projet.Dans la pratique, même si vous tentez de faire un
mvn site
vous avez généralement besoin de faire unmvn install
avant. Il ya tout simplement trop nombreux bugs avec soitsite
ou il est de nombreuses mal entretenu plugins.Cela dépend de ce que vous essayez d'atteindre après la modification du fichier Java. Jusqu'à ce que vous souhaitez tester le maven processus, vous n'avez rien à faire. Eclipse/MyEclipse va construire ce qui est nécessaire et de mettre la sortie à l'endroit approprié dans votre projet. Vous pouvez également exécuter ou de déployer (si c'est un projet web, par exemple), sans que vous ayez explicitement de faire n'importe quoi avec maven. En fin de compte, pour l'installation de votre projet dans le repository maven, vous allez avoir besoin de faire installer maven. Vous pouvez également avoir d'autres maven objectifs que vous souhaitez exécuter, qui MyEclipse ne le fera pas automatiquement.
Comme je l'ai dit, ça dépend de ce que vous voulez faire.