web-dev-qa-db-fra.com

Forcer le re-téléchargement de la dépendance des versions à l'aide de Maven

Je travaille sur un projet avec la dépendance 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'a pas été utilisé et pour rendre les choses plus propres, je l'ai ajouté au pom de X en tant que dépendance. X est marqué comme une dépendance à la libération.

Le problème est qu’après avoir retiré Y du pom de mon projet et l’avoir ajouté au pom de X, mon projet ne l’a pas repris sur mvn -U clean package. Je sais que -U met à jour les instantanés mais pas les communiqués.

Alors, sans supprimer le répertoire ~/.m2/repository comment puis-je forcer le re-téléchargement du pom de X? En outre, j'ai essayé d'exécuter dependency:purge-local-repository et cela n'a pas fonctionné non plus.

99
volni

Vous ne pouvez pas créer de dépendances Maven, mais vous pouvez également purger les dépendances incorrectement téléchargées à l'aide de mvn dependency:purge-local-repository.

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

133
Ali Tokmen

Je viens de supprimer mon ~/.m2/repository et cela a forcé un nouveau téléchargement;)

49
Ryan Angilly

Je pense que la commande suivante peut vous aider!


mvn -U clean install
30
Richard

Merci à ALi Tokmen de répondre. J'ai réussi à forcer la suppression de la dépendance locale spécifique avec la commande suivante:

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

Avec cela, il supprime utils de mon référentiel .m2/et il re-télécharge toujours la dépendance utils JAR lorsque je lance mvn clean install.

16
skyfish

Cliquez sur Projet avec le bouton droit de la souris -> Maven -> Mettre à jour le projet .__ et cochez les cases comme indiqué dans la capture d'écran. Il mettra également à jour les versions :)

enter image description here

13
nanosoft

Vous avez marqué les questions comme "maven-2". L'option -U a été ajoutée dans Maven 3 pour résoudre ce problème.

Je suggère une mise à niveau.

7
Mark O'Connor

Lorsque vous l'avez ajouté à X, vous devez avoir incrémenté le numéro de version de X, à savoir X-1.2.
Alors X-1.2 aurait dû être installé/déployé et vous devriez avoir changé la dépendance de votre projet sur X pour qu'elle dépende de la nouvelle version X-1.2

6
crowne
mvn clean install -U

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

Si vous souhaitez mettre à jour une dépendance unique sans nettoyage ni -U, vous pouvez simplement la supprimer de votre référentiel local puis la construire.

6
ArpitBora

Si vous voulez vraiment télécharger toutes les dépendances, vous pouvez essayer de réinitialiser tout le référentiel Maven. Comme dans cet article déjà décrit, vous pouvez utiliser:

mvn -Dmaven.repo.local=$HOME/.my/other/repository clean install
4
Bart den Haak

Supprimez simplement ~/.m2/repository ...../actual_path où le LOC invalide arrive car il oblige à télécharger à nouveau les fichiers JAR supprimés. Ne supprimez pas tout le dossier du référentiel à la place, supprimez le dossier spécifique d'où provient l'erreur.

1
Saurabh Oza

Si vous connaissez l'ID de groupe X, vous pouvez utiliser cette commande pour retélécharger tous les 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 proposant d'utiliser dependency:purge-local-repository, mais il ne supprime et ne retélécharge que tout ce qui concerne X.

0
smac89

La plupart des réponses fournies ci-dessus permettraient de résoudre le problème.

Mais si vous utilisez IntelliJ et souhaitez le réparer automatiquement, accédez à Paramètres Maven.

Construction, exécution, déploiement -> Outils de construction -> Maven

 enter image description here

Désactiver le travail hors connexion

Activer Toujours mettre à jour les instantanés (changez si nécessaire)

0