J'ai importé mon projet déjà fonctionnel sur un autre ordinateur et il a commencé à télécharger des dépendances.
Apparemment, ma connexion Internet est tombée en panne et maintenant j'obtiens ce qui suit:
>Build errors for comics; org.apache.maven.lifecycle.LifecycleExecutionException:
Failed to execute goal on project comicsTest: Could not resolve dependencies for project comicsTest:comicsTest:war:0.0.1-SNAPSHOT:
The following artifacts could not be resolved:
org.springframework:spring-context:jar:3.0.5.RELEASE,
org.hibernate:hibernate-entitymanager:jar:3.6.0.Final,
org.hibernate:hibernate-core:jar:3.6.0.Final,
org.hibernate:hibernate-commons-annotations:jar:3.2.0.Final,
org.aspectj:aspectjweaver:jar:1.6.8,
commons-lang:commons-lang:jar:2.5,
>mysql:mysql-connector-java:jar:5.1.13: Failure to transfer org.springframework:spring-context:jar:3.0.5.RELEASE from http://repo1.maven.org/maven2 was cached in the local repository, resolution will not be reattempted until the update interval of central has elapsed or updates are forced.
>Original error: Could not transfer artifact org.springframework:spring-context:jar:3.0.5.RELEASE from central (http://repo1.maven.org/maven2): No response received after 60000
Comment forcer maven à mettre à jour?
Réponses:
-U
signifie forcer la mise à jour des dépendances de l' instantané . Les dépendances des versions ne peuvent pas être mises à jour de cette façon.la source
Si votre référentiel local est en quelque sorte détruit pour les pots de publication plutôt que pour les instantanés (
-U
et--update-snapshots
uniquement les instantanés de mise à jour), vous pouvez purger le référentiel local en utilisant ce qui suit:Vous voudrez probablement alors nettoyer et réinstaller:
Beaucoup plus d'informations disponibles sur https://maven.apache.org/plugins/maven-dependency-plugin/examples/purging-local-repository.html
la source
mvn dependency:purge-local-repository
, il a simplement téléchargé à nouveau toutes les dépendances, ce qui est exactement ce que je voulais-U
semble forcer la mise à jour de toutes les dépendances.Si vous souhaitez mettre à jour une seule dépendance sans nettoyage ou
-U
vous pouvez simplement la supprimer de votre référentiel local, puis la construire.L'exemple ci-dessous si pour la mise à jour
slf4j-api 1.7.1-SNAPSHOT
:la source
Toutes les réponses ici n'ont pas fonctionné pour moi. J'ai utilisé la méthode du marteau:
Cela a résolu le problème :-)
la source
.m2
répertoire-nommé*.lastUpdated
find ~/.m2/ -name "*.lastUpdated" -delete
ferait sans dangerxargs
ourm
dépassant certaines limites (si de nombreux fichiers sont trouvés).Vous pouvez le faire efficacement à partir de
Eclipse IDE
. Bien sûr, si vous l'utilisez.la source
Juste au cas où quelqu'un voudrait seulement mettre à jour les dépendances des instantanés du projet et ne veut pas installer d'artefact:
N'oubliez pas de réimporter les dépendances dans votre IDE. Dans IDEA, vous devez cliquer avec le bouton droit sur le fichier pom et choisir Maven -> Réimporter
la source
Si vous n'êtes pas sûr de ce qui se trouve à l'intérieur de votre référentiel local, je recommande de déclencher une build avec l'option:
De cette façon, vous vous assurerez de construire dans un environnement de salle blanche.
la source
Dans mon cas, j'ai d'abord été:
Il montrait toujours la même erreur, puis j'ai fermé le projet et l'ai à nouveau rouvert. Enfin travaillé.
la source
Si vous utilisez l' IDE Eclipse, alors:
Appuyez sur alt + F5, la fenêtre de mise à jour du projet Maven apparaîtra.
Cochez - Forcer la mise à jour des instantanés / versions et cliquez sur OK.
Si vous utilisez Intellij IDE
la source
J'ai utilisé l'IDEI IntelliJ et j'ai eu un problème similaire et pour le résoudre, j'ai cliqué dans "Générer des sources et mettre à jour les dossiers pour tous les projets" dans l'onglet Maven.
la source
J'ai l'erreur dans un autre contexte. Ma solution pourrait donc être utile à ceux qui trébuchent sur la question:
Le problème: j'ai copié le référentiel local sur un autre ordinateur, qui n'a pas de connexion à un référentiel spécial. Maven a donc essayé de vérifier les artefacts par rapport au référentiel non valide.
Ma solution: supprimez les fichiers _maven.repositories.
la source
C'est l'une des choses les plus ennuyeuses à propos de Maven. Pour moi, ce qui suit se produit: Si j'ajoute une dépendance demandant de plus en plus de dépendances mais que j'ai une connexion lente, elle semble s'arrêter pendant le téléchargement et la temporisation. Bien que toutes les dépendances non encore récupérées soient marquées avec des espaces réservés dans le cache .m2 et Maven ne les récupérera (jamais) que si je supprime l'entrée d'espace réservé du cache (comme indiqué précédemment) en la supprimant.
Donc pour autant que je le vois, Maven ou plus précisément le plugin Eclipse Maven a un bug à ce sujet. Quelqu'un devrait le signaler.
la source
Vous devez vérifier votre fichier settings.xml dans le
<maven_home>/conf
répertoire.la source
J'ai la même erreur avec la dépendance android-maps-utils. L'utilisation d'un package de type aar dans la section des dépendances résout mon problème. Par défaut, le type est jar. Il est donc possible de vérifier quel type de dépendance dans le référentiel est téléchargé.
la source
Pour résoudre ce problème depuis Eclipse:
1) Ajoutez la dépendance ci-dessous dans Maven pom.xml et enregistrez le fichier pom.xml.
2) Aller au projet >> Maven >> Mettre à jour le projet
sélectionnez le projet et cliquez sur OK.
3) Étape facultative, si elle n'est pas résolue jusqu'à l'étape 2, procédez comme suit après l'étape 1
Aller au projet >> Maven >> Mettre à jour le projet >> cocher la case 'Forcer la mise à jour des instantanés / versions'
sélectionnez le projet et cliquez sur OK.
la source
Les versions précédentes de maven ne forçaient pas la vérification des versions manquantes lors de l'utilisation de -U avec une installation propre de mvn, uniquement les instantanés, bien que la version plus récente le prenne en charge.
Pour quelqu'un qui a encore du mal avec la version précédente, ce qui suit peut être utile:
Sous Windows:
Sous Linux:
Chaque fois que maven ne peut pas télécharger les dépendances pour une raison quelconque (connectivité / n'existe pas, etc.), il ajoutera le fichier ".error = Impossible de transférer l'artefact" dans le fichier dependency-name.lastUpdate dans le dossier respectif sous le répertoire $ home / .m2. La suppression de ces fichiers forcera maven à essayer de récupérer à nouveau les dépendances.
la source
Il est important d'ajouter que la principale différence de l'exécution
mvn
avec -U et sans -U est qu'elle-U
remplacera vos fichiers SNAPSHOT locaux par des fichiers SNAPSHOT distants.Fichiers jar SNAPSHOT locaux créés à partir du local
mvn install
dans les cas où d'autres modules de votre projet génèrent des jars.la source
-U est utilisé pour forcer la mise à jour de maven Repo. Utilisation
la source
J'ai essayé toutes les réponses ici mais rien ne semblait fonctionner. Redémarré mon ordinateur d'abord puis a couru
mvn clean install -U
. Cela a résolu mon problème.la source
Ce que maven fait, c'est qu'il télécharge toutes les dépendances de votre projet dans votre référentiel local (dossier .m2). En raison des problèmes d'Internet avec votre dépôt local, votre projet est confronté à des problèmes. Je ne sais pas si cela vous aidera sûrement ou non, mais vous pouvez essayer de supprimer tous les fichiers du dossier du référentiel dans le dossier .m2. Puisqu'il n'y aurait rien dans le dépôt local, maven serait obligé de télécharger à nouveau les dépendances, forçant ainsi une mise à jour. Généralement, le dossier .m2 se trouve dans c: utilisateurs: [nom d'utilisateur] :. m2
la source
J'ai eu ce problème pour une raison différente. Je suis allé au référentiel maven https://mvnrepository.com à la recherche de la dernière version de Spring Core, qui était à l'époque 5.0.0.M3 / Le référentiel m'a montré cette entrée pour mon pom.xml:
Fou naïf que je suis, j'ai supposé que le commentaire me disait que le pot est situé dans le référentiel par défaut.
Cependant, après beaucoup de coups de tête, j'ai vu une note juste en dessous du xml disant "Remarque: cet artefact est situé dans le référentiel public Alfresco ( https://artifacts.alfresco.com/nexus/content/repositories/public/ ) "
Le commentaire dans le XML est donc complètement trompeur. Le pot est situé dans une autre archive, c'est pourquoi Maven n'a pas pu le trouver!
la source
Nous pouvons forcer pour obtenir la dernière mise à jour du référentiel de versions et d'instantanés avec la commande ci-dessous:
la source
J'ai eu la même erreur et courir
mvn install -U
et courir amvn install
fonctionné pour moi.la source
Je suis tombé sur cela récemment et l'exécution de ce qui suit a résolu tous les problèmes
la source
-fae,--fail-at-end Only fail the build afterwards; allow all non-impacted builds to continue
Cela semble une étrange façon de corriger les dépendances externes non mises à jour ..mvn clean install -U
ne fonctionne pas. Cependantmvn -U clean
suivi par lemvn clean install
fait.la source