Je viens juste de commencer à utiliser Maven et on m'a dit de faire mvn install
dans un répertoire spécifique.
Que fait exactement mvn install
?
Je pense qu'il cherche pom.xml
dans le dossier actuel et commence à suivre les instructions spécifiées dans ce fichier. Est-ce exact?
Comme vous le savez peut-être, Maven est un outil d'automatisation de la construction fourni par Apache qui fait plus que gérer les dépendances. Nous pouvons le créer en tant qu'homologue de Ant et Makefile, qui télécharge toutes les dépendances requises.
Sur un mvn install
, il encadre une arborescence de dépendances basée sur la configuration du projet pom.xml
sur tous les sous-projets du super pom.xml
(le POM racine) et télécharge/compile tous les composants nécessaires dans un répertoire appelé .m2
sous le dossier de l'utilisateur. Ces dépendances devront être résolues pour que le projet soit construit sans erreur, et mvn install
est un utilitaire pouvant télécharger la plupart des dépendances.
De plus, Maven contient d’autres outils tels que dependency:resolve
qui peuvent être utilisés séparément dans tous les cas. Le cycle de vie de construction du MVN est le suivant:
process-resources
compile
process-test-resources
test-compile
test
package
install
deploy
La phase de test de ce mvn peut être ignorée en utilisant un indicateur -DskipTests=true
.
Avez-vous consulté l'un des documents Maven, par exemple, le documents du plug-in d'installation maven ?
Version Nutshell: il construira le projet et l'installera dans votre référentiel local.
Il lancera tous les objectifs de tous les plugins configurés associés à n’importe quelle phase du cycle de vie par défaut jusqu’à la phase "installer":
https://maven.Apache.org/guides/introduction/introduction-to-the-lifecycle.html#Lifecycle_Reference
L’objectif install:install
est fourni par "Apache Maven Install Plugin":
Apache Maven Install Plugin
Le plug-in d'installation est utilisé pendant la phase d'installation pour ajouter des artefacts au référentiel local. Le plug-in d'installation utilise les informations contenues dans le POM (
groupId
,artifactId
,version
) pour déterminer l'emplacement correct de l'artefact dans le référentiel local.Le référentiel local est le cache local où sont stockés tous les artefacts nécessaires à la construction. Par défaut, il se trouve dans le répertoire de base de l'utilisateur (
~/.m2/repository
), mais l'emplacement peut être configuré dans~/.m2/settings.xml
à l'aide de l'élément<localRepository>
.
Cela dit, le but recherché:
install:install
est utilisé pour installer automatiquement l'artefact principal du projet (le JAR, le WAR ou l'EAR), son POM et tout artefact attaché (sources, javadoc, etc.) produit par un projet particulier.
Pour plus de détails sur l’objectif, veuillez vous reporter à la page Plugin d’installation d’Apache Maven - installer: installer .
Pour plus de détails sur le cycle de vie de la construction en général et sur l'emplacement de l'objectif dans le cycle de vie de la construction, veuillez vous reporter à la page Maven - Introduction au cycle de vie de la construction .
-DskipTests=true
est la forme abrégée de -Dmaven.test.skip=true
Apportez des modifications dans Setting.xml dans votre dossier . M2. Vous pouvez utiliser link to repo local pour que les fichiers jar une fois téléchargés ne soient plus téléchargés.
<url>file://C:/Users/admin/.m2/repository</url>
</repository>
Réponse courte
mvn install
- ajoute tous les artefacts (dépendances) spécifiés dans pom, au localréférentiel (à partir de sources distantes).