So beheben Sie den Fehler "Aktualisieren des Maven-Projekts". Nicht unterstützte IClasspathEntry-Art = 4?

412

Ich habe ein Maven-Projekt in STS importiert, wenn ich ein Update-Update-Projekt ausführe, das ich erhalte:

"Updating Maven Project". Unsupported IClasspathEntry kind=4

Gibt es eine Problemumgehung dafür?

user810430
quelle
Funktioniert ein Build auf der Befehlszeile? Welche Maven-Version?
Khmarbaise
Ich habe das gleiche Problem und ich bin nicht in der Lage, durch diese Antwort zu schieben.
Können

Antworten:

613

Dieses Problem wurde in m2e 1.5.0 behoben, das für Eclipse Kepler (4.3) und Luna (4.4) verfügbar ist.

Weitere Informationen finden Sie unter https://bugs.eclipse.org/bugs/show_bug.cgi?id=374332#c14

Das Problem wird durch die Tatsache verursacht, dass STS (die Spring IDE / Eclipse) sowie Eclipse und andere Eclipse-basierte IDEs das Plugin m2e (clipse) verwenden, aber dass Eclipse: Eclipse wahrscheinlich für das Projekt ausgeführt wurde. Wenn m2e auf einen "var" .classpath-Eintrag stößt, wird dieser Fehler ausgegeben.

Die Update-Sites werden unter der folgenden URL angegeben:
http://eclipse.org/m2e/m2e-downloads.html

Wenn Sie m2e 1.5.0 aus irgendeinem Grund nicht verwenden können, dann:

  1. Deaktivieren Sie die Maven-Natur für das Projekt (über das Kontextmenü).

  2. Ausführen mvn eclipse:clean(während Ihr Projekt in STS / Eclipse geöffnet ist ). Abhängig vom Zeitpunkt müssen Sie möglicherweise ein oder zwei Aktualisierungen des Projekts durchführen, bevor Sie die Maven-Natur wieder aktivieren können. Sie sollten in der Lage sein zu sehen, dass Ihr Projekt seine Maven-Natur verloren hat. (Das eclipse:cleanZiel löscht nur die .project, .classpathund .settings/Dateien / Verzeichnisse. Sie können auch nur die Dateien entfernen (wieder , während das Projekt geöffnet ist ) statt laufen mvn eclipse:clean.)

  3. Aktivieren Sie die Maven-Natur wieder.
    (Meistens können Sie dazu im Paket-Explorer-Bereich mit der rechten Maustaste auf das betreffende Projekt klicken und dann "Konfigurieren" -> "In Maven-Projekt konvertieren" auswählen.)

Marco
quelle
3
Ich musste es zweimal versuchen, damit es funktioniert. Als ich es das erste Mal versuchte, schlich sich das "var" zurück in die .classpath-Datei. Ich habe die Dateien mit mvn eclipse: eclipse neu generiert und es erneut versucht. Es hat das 2. Mal funktioniert.
Deepak Bala
1
Es kann hilfreich sein, alle classpathentrymit dem kindAttribut set manuell aus der .classpath-Datei zu entfernen var.
Puigcerber
31
Es hat bei mir funktioniert, aber ich musste ein zusätzliches "Aktualisieren" durchführen, bevor ich die Maven-Natur wieder aktivieren konnte (in meinem Fall "Als Maven-Projekt konfigurieren", da es sich um ein facettiertes Projekt handelte)
Stuart Watt
2
repository.sonatype.org/content/repositories/forge-sites/m2e funktioniert nicht mehr
Shervin Asgari
2
Ich denke, Sie gehen die Eclipse-Versionen falsch: Eclipse Kepler ist 4.3 und Luna ist 4.4
Vogella
63
  1. Klicken Sie mit der rechten Maustaste auf Ihr Projekt und wählen Sie Maven -> Maven Nature entfernen.

  2. Öffnen Sie Ihr Terminal, gehen Sie zu Ihrem Projektordner und tun Sie es mvn eclipse:clean

  3. Klicken Sie mit der rechten Maustaste auf Ihr Projekt und wählen Sie "Konfigurieren -> In Maven-Projekt konvertieren".

Jetzt ist "Nicht unterstützte IClasspathEntry-Art = 4 Eclipse Scala" verschwunden.

Sagar
quelle
5
Danke dafür. Nur eine Notiz für andere, mvn eclipse:cleannicht mvn clean(ich habe mich täuschen lassen , weil ich nicht genau aufgepasst habe).
Jin Kim
OK. Ich habe src / java aus der cmd-Zeile erstellt, nachdem ich das Projekt in Kepler importiert habe. Das war der Fall.
Zbyszek
43

Manchmal funktioniert sogar das erneute Importieren des Maven-Projekts nicht. Das korrekte Aktualisieren des Projekts in Eclipse ist kein deterministischer Prozess. Das einzige 100% ausfallsichere Verfahren, das ich gefunden habe, ist:

  1. Deaktiviere Maven Nature, renne, starte mvn eclipse:cleanneu, drücke die Daumen und bete dreimal.
  2. Wenn dies nicht funktioniert, löschen Sie das Projekt, führen Sie es aus mvn eclipse:clean, importieren Sie die Aktualisierung erneut, beten Sie und wenden Sie die Kraft an .
  3. Wenn dies immer noch nicht funktioniert, starten Sie Eclipse oder noch besser Ihren Computer neu . Während Sie auf den Neustart warten, können Sie eine zufällige Spende tätigen , um Ihr Karma zu reparieren. Wiederholen Sie Schritt 2 und vergessen Sie nicht, zu beten und Ihren Ärger zu kontrollieren. Wut führt zu Hass. Hass führt zu Leiden.
  4. Probieren Sie alle anderen Antworten in diesem Thread aus. Möglicherweise müssen Sie sie alle mindestens dreimal ausprobieren, bevor Sie aufgeben.
  5. Formatieren Sie Ihren Computer, installieren Sie Eclipse und Maven erneut . Du musst nicht mehr beten, alle Götter hassen dich sowieso
  6. Löschen Sie Ihr Git-Projekt, brennen Sie das physische Laufwerk, auf dem das Remote-Repository gespeichert ist, und schreiben Sie Ihr Projekt von Grund auf neu.
  7. Finden Sie eine Zeitmaschine , reisen Sie in die Vergangenheit und überzeugen Sie sich, einer anderen Karriere ohne Programmierung zu folgen oder zumindest Java zu meiden
yannicuLar
quelle
3
Ich habe alles versucht und sage immer wieder "Maven Dependency Management Problem" oder "NullPointerException"
srirachapills
1
Bleib
1
Was hat Java jemals mit Ihnen gemacht?
Böse Waschmaschine
2
@ EvilWashingMachine Eigentlich nichts Schlimmes. Ich habe gerade versucht, eine Ausrede zu finden, um die Verwendung einer Zeitmaschine zu rechtfertigen
yannicuLar
1
Bleib
12
  1. Stellen Sie sicher, dass die Version des von Ihnen ausgeführten m2e-Plugins (clipse) mindestens 1.1.0 ist

  2. Maven-Projekt schließen - Rechtsklick auf "Projekt schließen"

  3. Entfernen Sie manuell alle Klassenpfade mit kind = "var" in der .classpath-Datei
  4. Offenes Projekt

oder

  1. Maven-Projekt entfernen
  2. Manuelles Entfernen von .classpath 4 Projekt erneut importieren
Farbe
quelle
Der Fehler liegt nicht bei STS, wie von @Marco angegeben. Es ist ein allgemeines m2e-Problem. Deaktivieren Sie die Maven-Natur, löschen Sie die .classpath-Datei und aktivieren Sie die Maven-Natur erneut.
sbzoom
6

Hast du es versucht:

  1. Wenn Sie ein Projekt in die Eclipse 4 importiert haben, löschen Sie es bitte.
  2. Führen Sie in maven consol Folgendes aus: mvn eclipse: clean
  3. In Eclipse 4: Datei -> Importieren -> Maven -> Vorhandene Maven-Projekte
Tam
quelle
1
Stellen Sie zuvor sicher, dass das Maven Eclipse-Plugin zuvor nicht für das Projekt ausgeführt wurde. mvn eclipse: clean behebt es bei Bedarf.
AChoice
3
Das hat bei mir in Juno besser funktioniert. Ich habe die Projekte in Eclipse gelöscht und dann erneut importiert.
cs94njw
Keine Wirkung in Eclipse Kepler
Zbyszek
3

Alle anderen Antworten sehen. Ich habe für mich einen einfacheren Weg gefunden.

Ich habe gerade alle Zeilen im .classpath (Bearbeitung mit Eclipse) entfernt, die eine var enthalten, und habe maven -> update project ohne Fehler verwendet.

Keiki
quelle
Dies funktionierte für mich und musste auch eine "Glas" -Linie entfernen, die ein Maven-Glas enthielt.
Dwjohnston
2

Dieser Fehler wird auch ausgelöst, wenn der Aktualisierungsbefehl für ein Projekt verwendet wird, das für die Codeabdeckung mit Clover instrumentiert ist.

So lösen Sie in diesem Szenario: Deaktivieren Sie die Zuordnung der Projektordner, die Sie aktualisieren möchten. Führen Sie das Maven-Update und dann das Instrument für die Codeabdeckung erneut aus.

Andreis
quelle
0

Ich habe Marcos Schritte ausprobiert, aber kein Glück. Wenn Sie stattdessen nur das neueste m2e-Plugin über den von ihm bereitgestellten Link erhalten und nacheinander mit der rechten Maustaste auf jedes Projekt klicken -> Maven -> Abhängigkeiten aktualisieren - wird der Fehler weiterhin angezeigt, das Problem ist jedoch behoben. Das heißt, die Warnungen verschwinden in der Markierungsansicht. Dieses Problem trat auf, nachdem ich einige Projekte in die SpringSource Tool Suite (STS) importiert hatte. Als ich zu meiner Eclipse Juno-Installation zurückkehrte, wurden die Warnungen angezeigt. Als ich sah, dass ich m2e 1.1 bereits installiert hatte, versuchte ich die Schritte von Marco ohne Erfolg. Das Erhalten der neuesten Version hat es jedoch behoben.

user1444080
quelle
1
Vielen Dank, habe meine Antwort bearbeitet, um zu betonen, dass Sie die neueste Version erhalten sollten, nicht nur 1.1.0, die zu der Zeit die neueste Version war.
Marco
Wenn Sie Eclipse MarketPlace verwenden, anstatt es über eine externe Site herunterzuladen, erhalten Sie immer die neueste Version.
Jops
0

Ich konnte mvn eclipse: clean etc nicht für Kepler verwenden.

Ich habe jedoch das Erstellen und Erweitern von Variablen dahingehend geändert, dass nur externe Jars in meinem Eclipse-Klassenpfad verwendet werden. Dies spiegelte sich in keinem var in meinem .classpath wider.

Dies hat das Problem behoben. Ich konnte ein Maven-Update durchführen.

user1069528
quelle
0

Dieses Problem ( https://bugs.eclipse.org/394042 ) wurde in m2e 1.5.0 behoben, das für Eclipse Kepler und Luna in diesem p2-Repo verfügbar ist:

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

Wenn Sie auch m2e-wtp verwenden, müssen Sie auch m2e-wtp 1.1.0 installieren:

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

Fred Bricon
quelle
Der erste Link ergibt "Es tut uns leid, die Seite oder Datei kann nicht gefunden werden. Hier sind einige Gründe warum ..."
Jaroslav Záruba
Grund Nr. 1 gilt hier: Dies ist ein Eclipse Update-Site / P2-Repository. Sie müssen über Eclipse darauf zugreifen (siehe help.eclipse.org/luna/index.jsp?topic=//… ).
Fred Bricon
0

Das Upgrade von Kepler auf Luna hat für mich funktioniert.

Ich hatte gerade einige Komponenten für die Unterstützung von Java 1.8 hinzugefügt. Es scheint, dass sie nicht so kompatibel waren, wie ich es gerne hätte, oder dass ich die falschen gemischt habe. Es hat wirklich viele Probleme verursacht. Beim Versuch, das System zu aktualisieren, wurden Fehler gemeldet, da einige Abhängigkeiten nicht erfüllt werden konnten. Maven-Upgrades haben nicht funktioniert. Versuchte viele Dinge.

Wenn es also keinen Grund gibt, das Upgrade zu vermeiden, fügen Sie das Luna-Repository einfach zu verfügbaren Software-Sites (Luna http://download.eclipse.org/releases/luna/ ) hinzu und "nach Updates suchen ". Es ist besser, alle Komponenten mit derselben Version zu haben, und es gibt einige nette neue Funktionen.

Borjab
quelle
0

Ich habe alle hier genannten Schritte und ähnliche Fragen ausprobiert, konnte dieses Problem jedoch nicht lösen. Ich konnte weder ein Problem lösen noch meine m2eclipse aktualisieren. Also habe ich Eclipse Luna installiert und es hat mein Problem gelöst ... obwohl es bedeutet, dass ich ungefähr 45 Minuten aufwenden musste, um die gesamte Umgebung in meinem Arbeitsbereich zu konfigurieren.

simpleDev
quelle
0

Versuchen Sie den Befehl mvn clean install eclipse: eclipse -Dwtpversion = 2.0 an der DOS-Eingabeaufforderung. Ich schlage dir vor, weil es bei mir funktioniert hat !!

Bharat
quelle
0

Ich verwende Eclipse 4.3.2 (Kepler) mit M2E 1.4.x und habe dieses Problem mehrmals überlegt!

In meinem Fall generiert der Befehl "mvn eclipse: eclipse" auch die Konfiguration von Checkstyle, PMD und Findbugs, sodass "mvn eclipse: clean" mir nicht hilft, da alle diese Konfigurationsdateien erneut gelöscht werden.

Die beste Lösung für mich war, alle ".classpath" -Dateien zu löschen:

find . -name ".classpath" -delete

und importieren Sie das Projekt anschließend in Eclipse.

TekTimmy
quelle
0

Vor dem Importieren des Projekts sollte es in das Eclipse-Projekt mvn eclipse konvertiert werden: eclipse Dann habe ich den folgenden Fehler gefunden. Ein interner Fehler ist aufgetreten während: "Importieren von Maven-Projekten" .Unterstützte IClasspathEntry-Art = 4

Wo ist der Wert kind = "var", den M2E nicht erkennt und daher den Fehler auslöst.

Geben Sie dies jetzt ein. MVN Eclipse: sauber

Aktualisieren Sie nun das Projekt in Eclipse oder importieren Sie es erneut.

Supun Dharmarathne
quelle