Comment corriger l'erreur «Mise à jour du projet Maven». Type IClasspathEntry non pris en charge = 4?

412

J'ai importé un projet maven dans STS, lorsque je lance un projet de mise à jour de mise à jour, je reçois:

"Updating Maven Project". Unsupported IClasspathEntry kind=4

Y a-t-il une solution à cela?

user810430
la source
Est-ce qu'une build sur ligne de commande fonctionne? Quelle version Maven?
khmarbaise
J'ai le même problème et je ne suis pas en mesure de ralentir cette réponse, pouvez-vous s'il vous plaît voir stackoverflow.com/questions/12049566/…
Hemant Metalia

Réponses:

613

Ce problème a été corrigé dans m2e 1.5.0 qui est disponible pour Eclipse Kepler (4.3) et Luna (4.4)

Veuillez consulter https://bugs.eclipse.org/bugs/show_bug.cgi?id=374332#c14

Le problème est dû au fait que STS (l'IDE Spring / Eclipse), ainsi qu'Eclipse et d'autres IDE basés sur Eclipse, utilisent le plugin m2e (clipse) mais que eclipse: eclipse a probablement été exécuté sur le projet. Lorsque m2e rencontre une entrée "var" .classpath, il renvoie cette erreur.

Les sites de mise à jour sont spécifiés à l'URL suivante:
http://eclipse.org/m2e/m2e-downloads.html

Si vous ne pouvez pas utiliser m2e 1.5.0 pour une raison quelconque, alors:

  1. Désactiver la nature maven pour le projet (via le menu contextuel)

  2. Exécutez mvn eclipse:clean(pendant que votre projet est ouvert dans STS / eclipse). Selon le calendrier, vous devrez peut-être effectuer une ou deux actualisations sur le projet avant de réactiver la nature maven. Vous devriez pouvoir voir que votre projet a perdu sa nature Maven. (Le eclipse:cleanbut supprime juste le .project, .classpathet les .settings/fichiers / répertoires. Vous pouvez aussi supprimer ces fichiers (encore une fois alors que le projet est ouvert ) au lieu de courir mvn eclipse:clean.)

  3. Réactivez la nature maven.
    (La plupart du temps, cela peut être fait en cliquant avec le bouton droit sur le projet en question dans le volet de l'explorateur de packages, puis en choisissant «Configurer» -> «Convertir en projet Maven»)

Marco
la source
3
J'ai dû l'essayer deux fois pour le faire fonctionner. La première fois que je l'ai essayé, le "var" est revenu dans le fichier .classpath. J'ai régénéré les fichiers avec mvn eclipse: eclipse et j'ai réessayé. Cela a fonctionné la 2ème fois.
Deepak Bala
1
Il peut être utile de supprimer manuellement du fichier .classpath tous classpathentryles kindattributs dont la valeur est var.
Puigcerber
31
Cela a fonctionné pour moi, mais j'ai dû faire un "Refresh" supplémentaire avant de réactiver la nature Maven (en fait dans mon cas "Configurer en tant que projet Maven" car c'était un projet à facettes)
Stuart Watt
2
Je pense que vous vous trompez dans les versions Eclipse: Eclipse Kepler est 4.3 et Luna est 4.4
vogella
63
  1. Faites un clic droit sur votre projet, sélectionnez Maven -> Supprimer Maven Nature.

  2. Ouvrez votre terminal, allez dans votre dossier de projet et faites mvn eclipse:clean

  3. Faites un clic droit sur votre projet et sélectionnez «Configurer -> Convertir en projet Maven»

Maintenant, vous obtenez «Unclasssupported IClasspathEntry kind = 4 Eclipse Scala» disparaît.

Sagar
la source
5
Merci pour cela. Juste une note pour les autres, ce n'est mvn eclipse:cleanpas le cas mvn clean(je me suis fait avoir en ne faisant pas très attention).
Jin Kim
D'accord. J'ai créé src / java à partir de la ligne cmd, après avoir importé le projet dans Kepler. C'était le cas.
Zbyszek
43

Parfois, même la réimportation du projet Maven ne fonctionnera pas. La mise à jour correcte du projet dans eclipse n'est pas un processus déterministe. La seule procédure de sécurité intégrée à 100% que j'ai trouvée est:

  1. Désactivez Maven Nature, courez mvn eclipse:clean, redémarrez, croisez les doigts et priez 3 fois.
  2. Si cela ne fonctionne pas, supprimez le projet, exécutez mvn eclipse:clean, réimportez le rafraîchissement, priez et utilisez la force .
  3. Si cela ne fonctionne toujours pas, redémarrez Eclipse , ou mieux encore votre ordinateur . En attendant le redémarrage, vous pouvez faire un don aléatoire pour réparer votre Karma. Répétez l'étape 2 et n'oubliez pas de prier et de contrôler votre colère. La colère mène à la haine. La haine mène à la souffrance.
  4. Essayez toutes les autres réponses publiées dans ce fil. Vous devrez peut-être les essayer tous au moins 3 fois avant d'abandonner.
  5. Formatez votre ordinateur, réinstallez Eclipse et Maven . Plus besoin de prier, tous les dieux te détestent quand même
  6. Supprimez votre projet git, gravez le lecteur physique qui a stocké le référentiel distant et écrivez votre projet à partir de zéro.
  7. Trouver une machine à voyager dans le temps , voyager dans le passé et vous convaincre de suivre une autre carrière hors programmation ou au moins d'éviter Java
yannicuLar
la source
3
J'ai tout essayé, continuez à dire "Problème de gestion des dépendances Maven" ou "NullPointerException"
srirachapills
1
Restez calme et redémarrez Annuler Répétez
yannicuLar
1
Qu'est-ce que Java vous a fait?
Evil Washing Machine
2
@EvilWashingMachine Rien de vraiment mauvais .. J'ai juste essayé de trouver une excuse pour justifier l'utilisation d'une machine à
remonter le
1
Restez calme et utilisez le terminal vim +
Pratik Singhal
12
  1. Assurez-vous que la version du plugin m2e (clipse) que vous utilisez est au moins 1.1.0

  2. Fermer le projet maven - clic droit "Fermer le projet"

  3. Supprimez manuellement tous les chemins de classe avec kind = "var" dans le fichier .classpath
  4. Projet ouvert

ou

  1. Supprimer le projet Maven
  2. Projet de réimportation manuelle de rmeove .classpath 4
hicolore
la source
L'erreur n'est pas avec STS comme indiqué par @Marco. C'est un problème général de m2e. Désactivez la nature Maven, supprimez le fichier .classpath, réactivez la nature Maven.
sbzoom
6

As-tu essayé:

  1. Si vous avez un projet d'importation dans l'éclipse 4, veuillez le supprimer.
  2. Dans la console Maven, exécutez: mvn eclipse: clean
  3. Dans Eclipse 4: Fichier -> Importer -> Maven -> Projets Maven existants
Tam
la source
1
avant de faire cela, assurez-vous que le plugin maven eclipse n'a pas été exécuté sur le projet auparavant. eclipse mvn: clean le corrigera si nécessaire.
AChoice
3
Cela a mieux fonctionné pour moi à Juno. J'ai supprimé les projets dans Eclipse, puis réimporté.
cs94njw
Aucun effet dans Eclipse Kepler
Zbyszek
3

Voir toutes les autres réponses. J'ai trouvé pour moi un moyen plus simple.

Je viens de supprimer toutes les lignes du .classpath (édition avec eclipse) contenant un var et j'ai utilisé maven -> update project sans erreur.

keiki
la source
Cela a fonctionné pour moi, avait également besoin de supprimer une ligne "pot" qui contenait un pot maven.
dwjohnston
2

Cette erreur est également levée si la commande de mise à jour est utilisée sur un projet instrumenté pour la couverture de code avec Clover.

Pour résoudre ce scénario: Désinstrumentez les dossiers de projet que vous souhaitez mettre à jour. Exécutez à nouveau la mise à jour maven puis l'instrument pour la couverture du code.

Andreis
la source
0

J'ai essayé les pas de Marco mais pas de chance. Au lieu de cela, si vous obtenez le dernier plugin m2e à partir du lien qu'il fournit et un clic droit sur chaque projet -> Maven -> Mettre à jour les dépendances, l'erreur apparaît toujours mais le problème est résolu. C'est-à-dire que les avertissements disparaissent dans la vue Marqueurs. J'ai rencontré ce problème après avoir importé certains projets dans SpringSource Tool Suite (STS). Lorsque je suis retourné à mon installation Eclipse Juno, les avertissements étaient affichés. Voyant que j'avais m2e 1.1 déjà installé, j'ai essayé les étapes de Marco en vain. Cependant, la dernière version a été corrigée.

user1444080
la source
1
Merci, j'ai édité ma réponse pour souligner que vous devriez obtenir la dernière version, pas seulement la 1.1.0 qui était à l'époque la dernière version.
Marco
Si vous utilisez Eclipse MarketPlace au lieu de télécharger via un site externe, vous obtiendrez toujours la dernière version.
Jops
0

Je n'ai pas pu faire éclipse mvn: nettoyer etc pour travailler avec Kepler.

Cependant, j'ai changé la création et l'extension des variables en utilisant simplement des pots externes dans mon chemin de classe Eclipse. Cela s'est reflété dans aucun var dans mon .classpath.

Cela a corrigé le problème. J'ai pu faire une mise à jour Maven.

user1069528
la source
0

Ce problème ( https://bugs.eclipse.org/394042 ) est corrigé dans m2e 1.5.0 qui est disponible pour Eclipse Kepler et Luna à partir de ce repo p2:

http://download.eclipse.org/technology/m2e/releases/1.5

Si vous utilisez également m2e-wtp, vous devrez également installer m2e-wtp 1.1.0:

http://download.eclipse.org/m2e-wtp/releases/luna/1.1

Fred Bricon
la source
Le premier lien donne "Nous sommes désolés, la page ou le fichier est introuvable. Voici quelques raisons pour lesquelles ..."
Jaroslav Záruba
La raison n ° 1 s'applique ici: il s'agit d'un référentiel site / p2 de mise à jour Eclipse; vous devez y accéder depuis Eclipse (voir help.eclipse.org/luna/index.jsp?topic=//… ).
Fred Bricon
0

Le passage de Kepler à Luna a fonctionné pour moi.

Je venais d'ajouter quelques composants pour la prise en charge de Java 1.8. Il semble qu'ils n'étaient pas aussi compatibles que je le souhaiterais ou que j'ai mélangé les mauvais. Cela a vraiment causé beaucoup de problèmes. La tentative de mise à jour du système a signalé des erreurs car elles ne pouvaient pas répondre à certaines dépendances. Les mises à niveau de Maven n'ont pas fonctionné. J'ai essayé beaucoup de choses.

Donc, s'il n'y a aucune raison d'éviter la mise à niveau, ajoutez simplement le référentiel luna aux sites de logiciels disponibles (Luna http://download.eclipse.org/releases/luna/ ) et "vérifiez les mises à jour". Il est préférable d'avoir tous les composants avec la même version et il y a de belles nouvelles fonctionnalités.

borjab
la source
0

J'ai essayé toutes les étapes mentionnées ici et sur des questions similaires, mais je n'ai pas pu résoudre ce problème. Je n'ai pas pu résoudre le problème ni mettre à jour ma m2eclipse. J'ai donc installé Eclipse Luna et cela a résolu mon problème ... bien que cela signifie que j'ai dû passer environ 45 minutes pour configurer tout l'environnement dans mon espace de travail.

simpleDev
la source
0

Essayez mvn clean install eclipse: eclipse -Dwtpversion = 2.0 command à l'invite de commande DOS. Vous suggérant parce que cela a fonctionné pour moi !!

Bharat
la source
0

J'utilise Eclipse 4.3.2 (Kepler) avec M2E 1.4.x et j'ai ressenti plusieurs fois ce problème!

Dans mon cas, la commande "mvn eclipse: eclipse" génère également la configuration Checkstyle, PMD et Findbugs, donc "mvn eclipse: clean" ne m'aide pas car elle supprime à nouveau tous ces fichiers de configuration.

La meilleure solution pour moi était de supprimer tous les fichiers ".classpath":

find . -name ".classpath" -delete

et importez ensuite le projet dans Eclipse.

TekTimmy
la source
0

Avant d'importer le projet, il doit être converti en projet eclipse mvn eclipse: eclipse Puis j'ai trouvé l'erreur suivante. Une erreur interne s'est produite lors de: "Importation de projets Maven". IClasspathEntry kind = 4 non pris en charge

Où est la valeur kind = "var" que M2E ne reconnaît pas et renvoie donc l'erreur.

Tapez maintenant ceci. éclipse mvn: propre

Actualisez maintenant le projet dans Eclipse ou réimportez.

Supun Dharmarathne
la source