166 votes

Forcer le retéléchargement des dépendances de la version avec Maven

Je travaille sur un projet dont la dépendance est X. X, à son tour, dépend de Y.

J'avais l'habitude d'inclure explicitement Y dans le pom de mon projet. Cependant, il n'était pas utilisé et pour rendre les choses plus propres, je l'ai plutôt ajouté au pom de X comme une dépendance. X est marqué comme une dépendance de la version.

Le problème est qu'après avoir supprimé Y du pom de mon projet et l'avoir ajouté au pom de X, mon projet ne le récupère pas dans le pom de X. mvn -U clean package . Je sais que -U met à jour les snapshots mais pas les releases.

Donc, sans supprimer le répertoire ~/.m2/repository comment puis-je forcer un retéléchargement du pom de X ? J'ai aussi essayé de lancer dependency:purge-local-repository et ça n'a pas marché non plus.

208voto

Ali Tokmen Points 1886

Vous ne pouvez pas obliger Maven à re-télécharger les dépendances, mais ce que vous pouvez faire à la place, c'est purger les dépendances qui ont été téléchargées de manière incorrecte à l'aide de la fonction mvn dependency:purge-local-repository

Voir : http://maven.apache.org/plugins/maven-dependency-plugin/purge-local-repository-mojo.html

Cette fonction recherche la liste de toutes les dépendances transitives du projet actuel, les supprime, puis les télécharge à nouveau. Vous pouvez même l'ajouter en tant que plugin dans votre pom si vous voulez l'exécuter à chaque build.

62voto

Ryan Angilly Points 446

Je viens de supprimer mon ~/.m2/repository et cela m'a obligé à retélécharger ;)

59voto

skyfish Points 451

Basé sur la réponse d'Ali Tokmen. J'ai réussi à forcer la suppression d'une seule dépendance locale spécifique avec la commande suivante :

mvn dependency:purge-local-repository -DmanualInclude=com.skyfish:utils

Ainsi, il supprime utils à partir de mon dépôt .m2 et il retélécharge toujours le fichier utils JAR lorsque je procède à l'exécution de mvn clean install . Si vous souhaitez quelque chose de plus programmatique, vous pouvez également consulter le site Web de la Commission européenne. -Dinclude=... option.

54voto

user3247481 Points 548

Je pense que la commande suivante peut vous aider !


mvn -U clean install

17voto

ArpitBora Points 338
mvn clean install -U

-U signifie forcer la mise à jour des dépendances.

Si vous voulez mettre à jour une seule dépendance sans clean ou -U, vous pouvez simplement la supprimer de votre dépôt local et ensuite construire.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X