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.
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
Je viens de supprimer mon ~/.m2/repository et cela a forcé un nouveau téléchargement;)
Je pense que la commande suivante 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 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
.
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 :)
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.
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
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.
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
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.
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
.
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
Désactiver le travail hors connexion
Activer Toujours mettre à jour les instantanés (changez si nécessaire)