web-dev-qa-db-fra.com

Forcer la mise à jour

J'ai importé mon projet de travail sur un autre ordinateur afin qu'il commence à télécharger des dépendances.

Apparemment, ma connexion Internet s'est effondrée entre-temps. Maintenant je reçois:

Construire des erreurs pour les bandes dessinées; org.Apache.maven.lifecycle.LifecycleExecutionException: Echec de l'exécution de l'objectif sur le projet comicsTest: Impossible de résoudre les dépendances du projet comicsTest: comicsTest: war: 0.0.1-SNAPSHOT: Les artefacts suivants n'ont pas pu être résolus: org.springframework: spring- contexte: 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: communes-lang: jar: 2.5,

mysql: mysql-connector-Java: jar: 5.1.13: Echec du transfert de org.springframework: spring-context: jar: 3.0.5.RELEASE à partir de http://repo1.maven.org/maven2 = a été mis en cache dans le référentiel local, la résolution ne sera pas tentée tant que l'intervalle de mise à jour de la mémoire centrale ne sera pas écoulé ou que les mises à jour ne seront forcées.

Erreur d'origine: Impossible de transférer l'artefact org.springframework: spring-context: jar: 3.0.5.RELEASE à partir du fichier central ( http://repo1.maven.org/maven2 ): aucune réponse reçue après 60000.

Et je ne sais pas comment forcer Maven à se mettre à jour?

653
M4ks
mvn clean install -U

-U signifie la mise à jour forcée des dépendances instantané. Les dépendances de publication ne peuvent pas être mises à jour de cette façon.

1476
lwpro2

-U semble forcer la mise à jour de toutes les dépendances.

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

L'exemple ci-dessous concerne la mise à jour de slf4j-api 1.7.1-SNAPSHOT:

rm -rf ~/.m2/repository/org/slf4j/slf4j-api/1.7.1-SNAPSHOT
mvn compile
82
Ayush Gupta

Si votre référentiel local est maquillé pour les fichiers jar de version, par opposition aux instantanés (-U et --update-snapshots uniquement mettre à jour des instantanés), vous pouvez purger le référentiel local en procédant comme suit:

 mvn dependency:purge-local-repository

Vous voudrez probablement alors nettoyer et installer à nouveau:

 mvn dependency:purge-local-repository clean install

Beaucoup plus d'informations disponibles sur https://maven.Apache.org/plugins/maven-dependency-plugin/examples/purging-local-repository.html

72
FuzzyJulz

Toutes les réponses ici n'ont pas fonctionné pour moi. J'ai utilisé la méthode du marteau:

find ~/.m2/ -name "*.lastUpdated" | xargs rm

Cela a résolu le problème :-)

50
Robert Reiz

Vous pouvez faire efficacement de Eclipse IDE. Bien sûr si vous l'utilisez.

Project_Name->Maven->Update Project Configuration->Force Update of Snapshots/Releases
42
Amit Shakya

Juste au cas où quelqu'un voudrait seulement mettre à jour les dépendances d'instantané du projet et ne veut pas installer d'artefact:

mvn dependency:resolve -U

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.

23
GlaIZier

Si vous ne savez pas ce qui se trouve dans votre référentiel local, je vous recommande de lancer une construction avec l'option:

-Dmaven.repo.local=localrepo

De cette façon, vous vous assurez de construire dans une salle blanche.

11
merejy

Dans mon cas, j'ai d'abord été:

mvn clean install -U

Il y avait toujours la même erreur, puis j'ai fermé le projet et je l'ai rouvert. Enfin travaillé.

7
rajeev

Si vous utilisez Eclipse IDE alors:

  • Sélectionnez le projet.
  • Appuyez sur alt + F5, la fenêtre de mise à jour du projet Maven apparaît.

  • Vérifier - Forcez la mise à jour des instantanés/des versions et cliquez sur OK.

Si vous utilisez Intellij IDE

  • aller aux réglages/Maven
  • cocher Toujours mettre à jour les instantanés
4
patidarsnju

Vous devez vérifier votre fichier settings.xml dans le répertoire <maven_home>/conf.

2
Ashish Nariyal

C'est l'une des choses les plus ennuyeuses à propos de Maven. Voici ce qui se passe pour moi: si j'ajoute une dépendance demandant plus de dépendances, mais que ma connexion est lente, il est impossible de s'arrêter pendant le téléchargement et le dépassement du délai imparti. Pendant que le délai d'attente est dépassé, toutes les dépendances non encore récupérées sont marquées avec des espaces réservés dans le cache .m2 et Maven ne le récupérera pas (jamais) à moins que je supprime l'entrée d'espace réservé du cache (comme indiqué par d'autres) en la supprimant.

Donc, autant que je sache, Maven ou plus précisément le plugin Eclipse Maven a un bug à ce sujet. Quelqu'un devrait signaler cela.

2
Martin Kersten

J'ai l'erreur dans un autre contexte. Donc, ma solution pourrait être utile aux autres personnes qui cambriolent à 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.

2
Matthias M

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.

<!-- https://mvnrepository.com/artifact/com.thoughtworks.xstream/xstream -->
<dependency>
    <groupId>com.thoughtworks.xstream</groupId>
    <artifactId>xstream</artifactId>
    <version>1.3.1</version>
</dependency>

2) Aller au projet >> Maven >> Mise à jour du 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 avoir effectué l’étape 1.

Aller au projet >> Maven >> Mettre à jour le projet >> cocher la case 'Force Update of Snapshots/Releases'

sélectionnez le projet et cliquez sur OK.

1
Tarun11

J'ai la même erreur avec la dépendance Android-maps-utils. Utiliser un paquet de type aar dans la section des dépendances résout mon problème. Par défaut, le type est jar, vous pouvez donc vérifier le type de dépendance téléchargé dans le référentiel.

1
zhen_khokh

-U est utilisé pour forcer la mise à jour maven Repo. Utilisation

mvn -U clean install
0
Sanjeev Guglani

Maven télécharge toutes les dépendances de votre projet dans votre référentiel local (dossier .m2). En raison des problèmes liés à 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 référentiel situé dans le dossier .m2. Comme il n'y aurait rien dans le référentiel local, maven serait obligé de télécharger à nouveau les dépendances, forçant ainsi une mise à jour. En règle générale, le dossier .m2 se trouve dans c: utilisateurs: [nom d'utilisateur] :. m2

0
Ketan R

Il est important d’ajouter que la principale différence entre mvnavec - et sans - est que -U remplacera vos fichiers JAP SNAPSHOT locaux par pots SNAPSHOT distants.

Fichiers JAP SNAPSHOT locaux créés à partir de mvn install local si vous avez d’autres modules de votre projet qui génèrent des fichiers JAR.

0
Johnny

J'ai essayé toutes les réponses ici mais rien ne semblait fonctionner. J'ai d'abord redémarré mon ordinateur, puis exécuté mvn clean install -U. Cela a résolu mon problème.

0
Gelo