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.

16voto

nanosoft Points 1018

Clic droit sur le projet-> Maven -> Mise à jour du projet et cochez les cases comme dans la capture d'écran. Cela mettra également à jour les versions :)

enter image description here

9voto

Smac89 Points 1926

Si vous connaissez l'identifiant de groupe de X vous pouvez utiliser cette commande pour retélécharger tous les fichiers de l'application X et ses dépendances

mvn clean dependency:purge-local-repository -DresolutionFuzziness=org.id.of.x

Il fait la même chose que les autres réponses qui proposent d'utiliser dependency:purge-local-repository mais il ne fait que supprimer et retélécharger tout ce qui est lié à X .

7voto

crowne Points 6002

Lorsque vous l'avez ajouté à X, vous avez dû incrémenter le numéro de version de X, c'est-à-dire X-1.2.
Ensuite, X-1.2 devrait avoir été installé/déployé et vous devriez avoir changé la dépendance de vos projets sur X pour qu'ils dépendent de la nouvelle version X-1.2.

5voto

Bart den Haak Points 71

Si vous voulez vraiment forcer le téléchargement de toutes les dépendances, vous pouvez essayer de réinitialiser l'ensemble du dépôt maven. Comme dans cet article déjà décrite, vous pourriez utiliser :

mvn -Dmaven.repo.local=$HOME/.my/other/repository clean install

3voto

Saurabh Oza Points 201

Il suffit de supprimer ~/.m2/repository...../actual_path d'où provient le LOC invalide car il oblige à re-télécharger les fichiers jar supprimés. Ne supprimez pas l'ensemble du dossier du référentiel supprimez plutôt le dossier spécifique d'où provient l'erreur.

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