Forcer le re-téléchargement de la dépendance de la version à 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 plutôt ajouté au pom de X en tant que dépendance. X est marqué comme une version de dépendance.

Le problème est que, après avoir enlevé Y du pom de mon projet et l’ajouté au pom de X, mon projet ne le mvn -U clean package pas sur le mvn -U clean package à mvn -U clean package . Je sais -U mettre à jour les instantanés mais pas les versions.

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

Vous ne pouvez pas créer de dépendances de re-téléchargement Maven, mais vous pouvez plutôt purger les dépendances qui ont été incorrectement téléchargées à l’aide de la mvn dependency:purge-local-repository

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

Je viens de supprimer mon ~ / .m2 / repository et cela a forcé un re-download;)

Je pense que suivant la commande peut vous aider!


 mvn -U clean install 

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 les utilitaires de mon référentiel .m2 / et re-télécharge toujours la dépendance JAR des mvn clean install lorsque je lance mvn clean install .

Cliquez avec le bouton droit de la souris-> Maven -> Mettre à jour le projet et cochez les cases comme dans la capture d’écran. Il mettra à jour les versions aussi 🙂

entrer la description de l'image ici

Vous avez tagué les questions comme “maven-2”. L’option -U a été ajoutée dans Maven 3 pour résoudre ce problème.

Je suggère la mise à niveau.

Lorsque vous l’avez ajouté à X, vous devez avoir incrémenté le numéro de version de X, c’est-à-dire X-1.2.
Alors X-1.2 aurait dû être installé / déployé et vous auriez dû changer la dépendance de vos projets sur X pour être dépendante de la nouvelle version X-1.2

 mvn clean install -U 

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

Si vous souhaitez mettre à jour une seule dépendance sans nettoyage ou -U, vous pouvez simplement la supprimer de votre repo local, puis créer.

Si vous voulez vraiment télécharger toutes les dépendances, vous pouvez essayer de réinitialiser l’intégralité du 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 

La plupart des réponses fournies ci-dessus résoudraient le problème.

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

Build, Execution, Deployment -> Outils de construction -> Maven

entrer la description de l'image ici

Désactiver le travail hors ligne

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

Si vous connaissez l’ID de groupe de X , vous pouvez utiliser cette commande pour tout télécharger 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 l’utilisation de la dependency:purge-local-repository , mais il ne supprime et ne télécharge que tout ce qui concerne X

Aller à construire le chemin … supprimer la bibliothèque maven existante u a ajouté … cliquez sur append une bibliothèque … cliquez sur maven a géré les dépendances … puis cliquez sur les parameters du projet Maven … Vérifiez la résolution des dépendances Maven dépendances maven