Maven: commande pour mettre à jour le référentiel après avoir ajouté une dépendance à POM


256

J'ai ajouté une nouvelle dépendance à mon POM.

Existe-t-il une commande simple que je peux exécuter pour télécharger cette dépendance dans mon référentiel?


Pour ceux qui cherchent à faire cela dans un projet Spring Boot: utilisez mvnwpour appeler la couche wrapper. Les commandes de cette page fonctionnent avec.
G_V

Réponses:


179

mvn install (ou mvn package ) fonctionnera toujours.

Vous pouvez utiliser mvn compilepour télécharger les dépendances de temps de compilation ou mvn testpour le temps de compilation et tester les dépendances, mais je préfère quelque chose qui fonctionne toujours.


2
Merci, j'ai également découvert que l'ajouter au pom dans STS le téléchargerait automatiquement pour vous.
JJ180

15
La réponse de @Andrew Spencer est plus précise - ne mvn dependency:xxxtraitez que les dépendances et ne faites rien de plus - et c'est de cela qu'il s'agissait.
botchniaque

Parfois, «package mvn» peut ne pas mettre à jour les dépendances. Cela m'est arrivé plus d'une fois, il faut exécuter 'dépendance mvn: résoudre' dans de tels cas
Binita Bharati

1
@BinitaBharati, vous pouvez ajouter un -U à la ligne de commande Maven pour forcer les téléchargements de dépendances. Cela est utile si Maven ne télécharge pas une dépendance mise à jour en raison d'un délai d'expiration du cache.
BamaPookie

1
@Kishan Posez une nouvelle question. Montrez la disposition de votre projet (en particulier là où importcela se produit) et si vous utilisez une construction multi-module.
Aaron Digulla

611

Si vous souhaitez uniquement télécharger les dépendances sans rien faire d'autre, alors c'est:

mvn dependency:resolve

Ou pour télécharger une seule dépendance:

mvn dependency:get -Dartifact=groupId:artifactId:version

Si vous devez télécharger à partir d'un référentiel spécifique, vous pouvez spécifier cela avec -DrepoUrl=...


2
J'obtiens cette erreur lorsque j'exécute cette commande: [ERREUR] Impossible d'exécuter l'objectif org.apache.maven.plugins: maven-dependency-plugin: 2.1: get (default-cli) on project standalone-pom: The parameters 'repositoryUrl' pour l'objectif org.apache.maven.plugins: maven-dependency-plugin: 2.1: get sont manquants ou invalides -> [Aide 1]. La spécification de -DrepositoryUrl = ... ne fonctionne pas.
Chry Cheng

1
Je pense avoir trouvé la solution. Le paramètre doit être "repoUrl" et non "repositoryUrl".
Chry Cheng

Ne résout pas le problème pour moi: je lance mvn package -ojuste après - je reçois une erreur indiquant que les plugins ne peuvent pas être téléchargés. La course mvn dependency:resolve-pluginsne résout pas non plus complètement le problème.
Innokenty

Les URL de votre référentiel sont peut-être manquantes / incorrectes. En tout cas, je ne pense pas que cette réponse soit la réponse au problème que vous rencontrez. Cette réponse couvre le cas où Maven peut trouver tous les artefacts dont il a besoin dans les référentiels configurés.
Andrew Spencer

Je me fiche que vous soyez croyant ou non, chrétien ou non ... Que Dieu vous bénisse cette réponse simple et impressionnante.
Salathiel Genèse

12

Je sais que c'est une vieille question maintenant, mais pour les utilisateurs qui utilisent un Mavenplugin avec Eclipse under Windows, vous avez deux options:

  1. Si Maven est installé en tant qu'application autonome:

    Vous pouvez utiliser la commande suivante dans le CMDchemin d'accès sous votre projet:

    mvn eclipse:eclipse

    Il mettra à jour votre référentiel avec tous les pots manquants, selon vos dépendances dans votre pom.xmlfichier.

  2. Si vous n'avez pas installé Maven en tant qu'application autonome, vous pouvez suivre ces étapes sur votre éclipse:

    Faites un clic droit sur project-> Run As-> Run configurations.

    Sélectionnez ensuite mavenBuild.

    Cliquez ensuite sur le newbouton pour créer une configuration du type sélectionné .Cliquez sur Parcourir l'espace de travail puis sélectionnez votre projet et dans les objectifs spécifiezeclipse:eclipse

Vous pouvez vous référer à la façon d'exécuter la commande mvn eclipse: eclipse pour plus de détails.


3
Exécuter eclipse: eclipse après dépendance: la résolution m'a aidé à voir les fichiers jars téléchargés dans eclipse, merci!
Anatoly Yakimchuk

2
Bien que cette réponse aide les pauvres gens à rester avec Eclipse, je recommande fortement à quiconque utilisant Eclipse de trouver une meilleure alternative. Surtout si vous allez utiliser Maven. Netbeans et IntelliJ ont des années-lumière d'avance.
64BitBob

@ 64BitBob En supposant que Netbeans et IntelliJ sont meilleurs qu'eclipse, nous devrions toujours donner une solution pour ceux qui l'utilisent. :)
cнŝdk

Je vois que le plugin n'est plus disponible sur le marché, mais oui, il fonctionne dans Eclipse 2020 sans rien télécharger. Je me demande si mvn eclipse: eclipse est la commande envoyée par eclipse elle-même lorsque nous faisons un clic droit-> Maven-> Update Project ...
Paolo

@Paolo À mon avis, ils ont automatiquement ajouté le plugin dans les nouvelles versions d'Eclipse, et oui je pense que c'est la même commande derrière l'option "Mettre à jour le projet".
cнŝdk

1

Faites attention à l'étendue de votre dépendance. J'avais le problème où lorsque j'appelais une compilation propre via Intellij, le pom était téléchargé, mais pas le pot. Un fichier xxx.jar.lastUpdated a été créé. Puis j'ai réalisé que l'étendue des dépendances était test, mais je déclenchais la compilation. J'ai supprimé le référentiel et déclenché le test mvn, et le problème a été résolu.


-4

À droite, cliquez sur le projet. Allez dans Maven -> Mettre à jour le projet.

Les dépendances seront automatiquement installées.


Voici comment le faire dans Eclipse.
user1364368

parfois, et c'est finalement, pas loin cela fonctionne, certaines commandes comme le package mvn, l'installation, la dépendance: résoudre peut résoudre votre problème
Sham Fiorin
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.