Erreur Maven «Échec du transfert…»

285

J'essaie de mettre en place un projet en utilisant Maven (m2eclipse), mais j'obtiens cette erreur dans Eclipse:

Description Type d'emplacement du chemin de ressource Impossible de calculer le plan de build: échec du transfert de org.apache.maven.plugins: maven-compiler-plugin: pom: 2.0.2 de http://repo1.maven.org/maven2 a été mis en cache dans le local référentiel, la résolution ne sera pas tentée à nouveau tant que l'intervalle de mise à jour du central ne s'est pas écoulé ou que les mises à jour ne sont pas forcées. Erreur d'origine: impossible de transférer l'artefact org.apache.maven.plugins: maven-compiler-plugin: pom: 2.0.2 de / vers le central ( http://repo1.maven.org/maven2 ): aucune réponse reçue après 60000 ExampleProject Problème Maven inconnu

Des idées? Il serait utile que vous me montriez comment vérifier si tout est bien configuré ...

Deepak Joy
la source

Réponses:

720

Supprimez tous vos téléchargements ayant échoué:

find ~/.m2  -name "*.lastUpdated" -exec grep -q "Could not transfer" {} \; -print -exec rm {} \;

Pour les fenêtres:

cd %userprofile%\.m2\repository
for /r %i in (*.lastUpdated) do del %i

Cliquez ensuite avec le bouton droit sur votre projet dans Eclipse et choisissez Maven -> "Mettre à jour le projet ...", assurez-vous que "Mettre à jour les dépendances" est coché dans la boîte de dialogue résultante et cliquez sur OK.

Jonas Andersson
la source
6
Sous Windows, j'ai utilisé la boîte de dialogue de l'explorateur pour rechercher * .lastUpdated dans% USERPROFILE% \. M2, puis j'ai supprimé les fichiers signalés comme problématiques par Eclipse. Travaillé un régal! Je suis sûr que vous pouvez le faire en utilisant findstr ou similaire, mais l'interface graphique a fonctionné.
Mark McDonald
4
Sous Windows, j'ai fait apparaître un explorateur Windows et fait un clic droit sur .m2 -> Rechercher .... J'ai mis * .lastUpdated dans le nom de fichier et "Impossible de transférer" dans la zone de texte "Un mot ou une expression dans le fichier".
rajah9
4
Dans Windows, ces fichiers sont situés à l'intérieur <user-dir>/.m2/repository/org/example/myTool/1.01(vous voyez l'astuce). Il suffit de les supprimer à la *.lastUpdatedmain et de mettre à jour les dépendances.
Cedric Reichenbach
2
Sous Eclipse Luna (jalon 4.4) sous Windows, j'ai constaté qu'après avoir supprimé * .lastUpdated, j'avais également besoin d'obtenir m2eclipse pour réindexer le référentiel local (via Eclipse-> Fenêtre-> Préférences-> Maven-> Paramètres utilisateur: Référentiel local: Reindex)
gb96
2
après avoir tiré mes cheveux pendant des heures ... enfin cette solution a fonctionné pour moi dans le néon de l'éclipse .... merci
Tayab Hussain
71

Cela a également fonctionné pour moi sous Windows.

  1. Localisez le {user} /. M2 / repository (en utilisant Juno / Win7 ici)
  2. Dans le champ Rechercher en haut à droite de la fenêtre, tapez ".lastupdated". Windows recherchera ces fichiers dans tous les sous-dossiers du répertoire. (Je n'ai pas regardé dans le cache.)
  3. Supprimez-les par un clic droit> Supprimer (j'ai conservé tous les lastupdated.properties).
  4. Revenez ensuite dans Eclipse, cliquez avec le bouton droit sur le projet et sélectionnez Maven> Mettre à jour le projet. J'ai sélectionné "Forcer la mise à jour des instantanés / versions". Cliquez sur OK et les dépendances ont finalement été résolues correctement.
iowatiger08
la source
1
A également constaté que si vous avez des références incorrectes (syntaxe ou numéro de version) aux bibliothèques, elles ne seront pas téléchargées. Utilisez l'outil de recherche de référentiel en ligne Maven pour vous assurer que vous référencez correctement les bibliothèques dans votre pom.xml.
iowatiger08
Cela a fonctionné pour les fenêtres. Merci beaucoup mec! Mais ce problème se reproduit parfois. Avons-nous une solution permanente?
LINGS
@ iowatiger08 que se passe-t-il si je supprime également les fichiers lastupdated.properties?
garg10mai
@ garg10may Je ne pense pas que les supprimer serait un gros problème car Maven les repeuplera lors de la prochaine "mise à jour".
iowatiger08
@ iowatiger08, il y a des erreurs si j'utilise une version comme <version> [1.0.0,2.0.0) </version> dans mon fichier pom, mais je change la version en 1.6.10, les erreurs ont disparu. Pourquoi ça arrive?
gfan
32

Dans Eclipse: cliquez avec le bouton droit sur le projet-> Maven-> Mettre à jour le projet-> Cochez la case "Forcer la mise à jour des instantanés / versions". Cliquez sur OK.

Zhenya
la source
17

Merci pour les réponses, mais après quelques recherches supplémentaires, j'ai pu résoudre le problème. Il s'est avéré que je devais supprimer l'un des "* .lastUpdated" qui empêchait la mise à jour d'un de mes plugins (Maven Surefire Plugin). Je l'ai fait manuellement, car un nettoyage Maven ne le faisait pas apparemment.

Le problème était que le fichier "* .lastUpdated" d'un plugin bloquait la vérification des mises à jour par maven et ne permettait pas de télécharger un fichier nécessaire.

Deepak Joy
la source
4
C'est peut-être évident, mais je voudrais juste ajouter: après avoir recherché manuellement le fichier * .lastUpdated spécifié dans le référentiel maven (celui de surefire dans mon cas), et après l'avoir supprimé, il faut nettoyer le projet dans Eclipse.
superjos
15

Essayez d'exécuter

mvn -U clean

ou Exécuter> Maven Clean et Maven> Mettre à jour les instantanés à partir du menu contextuel du projet dans eclipse

Lev Khomich
la source
9

Dans mon cas. Les problèmes sont la même raison. Je vois que le problème est sur le proxy et le pare-feu.

Voici ma solution
Fisrt:
1. installez Proxy pour Maven et Eclipse
2. Allez dans Localiser le référentiel {user} /. M2 / et supprimez tous les fichiers * .lastupdated
3. Revenez dans Eclipse, cliquez avec le bouton droit sur le projet et sélectionnez Maven> Mettre à jour le projet. > Sélectionnez "Forcer la mise à jour des instantanés / versions".

Si le projet existe toujours, erreur. exemple: voici mes problèmes après tout l'étape ci-dessus

Failure to transfer org.apache.maven:maven-archiver:pom:2.5 from https://repo.maven.apache.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.apache.maven:maven-archiver:pom:2.5 from/to central (https://repo.maven.apache.org/maven2): Connect timed out

J'utilise cette solution utile pour moi:
1. Trouvez le référentiel dans https://mvnrepository.com/
2. Copiez la dépendance dans mon * .poml d'
exemple de projet

<dependency>
    <groupId>org.apache.maven</groupId>
    <artifactId>maven-archiver</artifactId>
    <version>2.5</version>
</dependency>


3. Construisez le projet. la dépendance manquante sera téléchargée dans le référentiel local.
4. Revenez dans Eclipse, cliquez avec le bouton droit sur le projet et sélectionnez Maven> Mettre à jour le projet. > Sélectionnez "Forcer la mise à jour des instantanés / versions".
= >> L'erreur est résolue
5. Je supprime les dépendances à l'étape 2 après avoir terminé et résolu. Terminé

huan le
la source
7

Cela a fonctionné pour moi dans Windows:

  1. Localisez le {user}/.m2/repository
  2. Dans le champ Rechercher en haut à droite de la fenêtre, tapez " .lastupdated". Windows recherchera ces fichiers dans tous les sous-dossiers du répertoire.
  3. Supprimez tous les .lastupdatedfichiers.
  4. Revenez dans Eclipse, faites un clic droit sur le projet et sélectionnez Maven > Update Project.
  5. Sélectionnez " Force Update of Snapshots/Releases".
  6. Cliquez sur OK et les dépendances se résoudront enfin correctement.
sumeet kumar
la source
6

Cela m'est arrivé alors que je suis derrière un pare-feu. Les dépendances ne sont pas téléchargées parfois lorsque vous exécutez dans Eclipse IDE. Assurez-vous que vous utilisez mvn clean install -Upour résoudre le problème. Vous verrez les dépendances télécharger après cela.

Kran
la source
Une fois que vous faites cela sur votre terminal, dirigez-vous vers Eclipse, sélectionnez le projet et "Actualiser le projet". Cela devrait résoudre le problème sans introduire la difficulté de trouver et de supprimer ".lastUpdated".
Edward Quichotte
5

Si vous êtes derrière un proxy, vous devez mettre à jour le fichier settings.xml (sous le dossier conf de votre MAVEN_HOME, le fichier lui-même contient des informations sur les paramètres du proxy) et en outre, vous devrez peut-être mettre à jour vos paramètres réseau Eclipse (Fenêtre-> Préférences ...-> tapez Connexions réseau).

Essayez d'utiliser -X ou --debug afin d'obtenir la sortie de débogage, cela pourrait fournir des informations supplémentaires sur le problème.

Abel Morelos
la source
3

J'ai eu un problème similaire dans Eclipse 3.6 avec m2eclipse.

Impossible de calculer le plan de build: échec du transfert de org.apache.maven.plugins: maven-resources-plugin: jar: 2.4.3 de http://repo1.maven.org/maven2 a été mis en cache dans le référentiel local, la résolution ne sera pas être réessayé jusqu'à ce que l'intervalle de mise à jour de central soit écoulé ou que les mises à jour soient forcées. Erreur d'origine: impossible de transférer l'artefact org.apache.maven.plugins: maven-resources-plugin: jar: 2.4.3 depuis le central (http://repo1.maven.org/maven2): projet ConnectException1 problème Maven inconnu

La suppression de tous les fichiers maven * .lastUpdated de mon référentiel local (comme l'a suggéré Deepak Joy) a résolu ce problème.

Luki
la source
2

J'ai eu un problème similaire avec seulement quelques projets dans mon espace de travail. D'autres projets avec des POM presque identiques n'avaient aucune erreur. Aucune des autres réponses répertoriées n'a résolu mon problème. J'ai finalement trébuché sur la suppression / la réapplication de la nature Maven pour chaque projet et les erreurs ont disparu:

Pour chaque projet qui a un pom avec l'erreur "la résolution ne sera pas tentée à nouveau ...":

  1. Faites un clic droit sur le projet dans Eclipse et sélectionnez Maven -> Désactiver Maven Nature
  2. Cliquez avec le bouton droit sur le projet dans Eclipse et sélectionnez Configurer -> Convertir en projet Maven
smith.gt
la source
2

Cela m'est arrivé aussi, vous pouvez avoir deux solutions pour cela

  1. Si votre projet contient une dépendance externe ou spécifique au projet, vous devez l'ajouter manuellement dans votre dossier repo M2 qui se trouve dans le dossier C: \ Users \ Mohit.Singh.m2 \ repository et vous devez ensuite exécuter mvn eclipse: éclipse puis mvn installation propre à partir du dossier du projet

  2. si vous n'avez pas de dépendance wxternal ou de projet spécifique, vous pouvez importer le projet dans eclipse en tant que projet maven existant, puis cliquer avec le bouton droit sur le projet -> Aller à maven -> Cliquer sur le projet de mise à jour une fenêtre apparaîtra vérifier le téléchargement de l'instantané de force option et appuyez sur OK

Mohit Singh
la source
2

Donnez le chemin correct de maven setting.xml dans eclipse.

  • Windows -> Préférence -> Maven -> Paramètres utilisateur

Entrez le chemin correct de setting.xml dans la zone de texte des paramètres utilisateur

HansiRadhakrishnan
la source
Ajoutez également l'installation de
Maven
1

supprimez simplement l'archétype dans maven local repository. Comme indiqué ci-dessus, cela se produit en cas d' échec du téléchargement des archétypes.

Pravat Panda
la source
1

Pour moi, je viens d'ajouter le code xml ci-dessous dans le fichier POM.xml. Et après avoir dit ** clic droit dans le projet -> Maven -> Mettre à jour le projet et j'ai vérifié Forcer la mise à jour des instantanés / versions ** et tout a fonctionné

    <dependencies>
        <!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>3.1.0</version>
        </dependency>

        <!-- https://mvnrepository.com/artifact/javax.servlet.jsp/jsp-api -->
        <dependency>
            <groupId>javax.servlet.jsp</groupId>
            <artifactId>jsp-api</artifactId>
            <version>2.1</version>
        </dependency>

        <!-- https://mvnrepository.com/artifact/jstl/jstl -->
        <dependency>
            <groupId>jstl</groupId>
            <artifactId>jstl</artifactId>
            <version>1.2</version>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.5.1</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
        </plugins>
    </build>
Lamine BA
la source
0

settings.xml pour le proxy? et dans eclipse il y a le profil global \ local de maven, ajoutez le fichier settings.xml

roi
la source
2
Pouvez-vous modifier votre réponse et ajouter plus de détails? Donnez un exemple de ce qu'il faut ajouter settings.xmlet où il peut être trouvé. Gardez également à l'esprit que cette question a 10 mois.
Brigand
0

Vous pouvez supprimer le dossier .m2 lui-même et forcer MyEclipse à télécharger à nouveau toutes les dépendances au démarrage. Allez dans Fenêtre> Préférences> MyEclipse> Maven4MyEclipse.

R Tiwari
la source
0
  • Ci-dessus Une erreur s'est produite en raison de la suppression de «maven-compiler-plugin 2.0.2» du référentiel maven.
  • Pour moi, l'erreur ci-dessus est résolue lorsque je rétrograde 'maven-compiler-plugin' vers la version 2.0 ou 2.0.1.
Avinash Pande
la source
-1

La solution qui fonctionne pour moi est la suivante:

  1. Copiez la dépendance dans pom.

    <dependency>
        <groupId>org.apache.maven</groupId>
        <artifactId>maven-archiver</artifactId>
        <version>2.5</version>
    </dependency>
  2. Cliquez à droite sur votre projet

  3. Sélectionnez Maven
  4. Sélectionnez Mettre à jour le projet
  5. Sélectionnez Forcer la mise à jour des instantanés / versions
Jorge Santos Neill
la source
-2

Veuillez vous assurer que le fichier settings.XML dans le dossier .m2 est d'abord valide Ensuite, après avoir nettoyé le référentiel en utilisant la commande ci-dessous dans cmd

cd %userprofile%\.m2\repository
for /r %i in (*.lastUpdated) do del %i
dush88c
la source