Jak naprawić błąd „Aktualizowanie projektu Maven”. Nieobsługiwany IClasspathEntry kind = 4?


412

Zaimportowałem projekt maven do STS, kiedy uruchamiam projekt aktualizacji aktualizacji, otrzymuję:

"Updating Maven Project". Unsupported IClasspathEntry kind=4

Czy można to obejść?


Czy działa kompilacja na linii poleceń? Która wersja Maven?
khmarbaise

Mam ten sam problem i nie jestem w stanie spowolnić tej odpowiedzi. Czy możesz zobaczyć stackoverflow.com/questions/12049566/...
Hemant Metalia

Odpowiedzi:


613

Ten problem został rozwiązany w m2e 1.5.0, która jest dostępna dla Eclipse Kepler (4.3) i Luna (4.4)

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

Problem jest spowodowany faktem, że STS (Spring IDE / Eclipse), a także Eclipse i inne IDE oparte na Eclipse, używają wtyczki m2e (clipse), ale to eclipse: eclipse zostało prawdopodobnie uruchomione w projekcie. Gdy m2e napotka wpis „var” .classpath, zgłasza ten błąd.

Witryny aktualizacji są podane pod następującym adresem URL:
http://eclipse.org/m2e/m2e-downloads.html

Jeśli nie możesz użyć m2e 1.5.0 z jakiegokolwiek powodu, to:

  1. Wyłącz naturę maven dla projektu (poprzez menu prawym przyciskiem myszy)

  2. Uruchom mvn eclipse:clean(gdy twój projekt jest otwarty w STS / eclipse). W zależności od czasu może być konieczne odświeżenie lub wykonanie dwóch zmian w projekcie przed ponownym włączeniem natury maven. Powinieneś być w stanie zobaczyć, że twój projekt stracił naturę Maven. (The eclipse:cleancel tylko usuwa .project, .classpatha .settings/plików / katalogów. Można też po prostu usunąć te pliki (ponownie , gdy projekt jest otwarty ) zamiast biegać mvn eclipse:clean).

  3. Ponownie włącz naturę maven.
    (W większości przypadków można to zrobić, klikając prawym przyciskiem myszy projekt w okienku eksploratora pakietów, a następnie wybierając polecenie „Konfiguruj” -> „Konwertuj na projekt Maven”)


3
Musiałem spróbować dwa razy, aby to zadziałało. Za pierwszym razem, gdy spróbowałem, „var” wkradł się z powrotem do pliku .classpath. Ponownie wygenerowałem pliki za pomocą mvn eclipse: eclipse i spróbowałem ponownie. Udało się drugi raz.
Deepak Bala

1
Pomocne może być ręczne usunięcie z pliku .classpath wszystkich classpathentryz kindatrybutem ustawionym na var.
Puigcerber

31
To działało dla mnie, ale musiałem wykonać dodatkowe „Odświeżanie” przed ponownym włączeniem natury Maven (właściwie w moim przypadku „Skonfiguruj jako projekt Maven”, ponieważ był to projekt fasetowany)
Stuart Watt


2
Myślę, że źle rozumiesz wersje Eclipse: Eclipse Kepler ma 4,3, a Luna 4,4
vogella

63
  1. Kliknij prawym przyciskiem myszy swój projekt, wybierz Maven -> Usuń Maven Nature.

  2. Otwórz terminal, przejdź do folderu projektu i zrób mvn eclipse:clean

  3. Kliknij projekt prawym przyciskiem myszy i wybierz „Konfiguruj -> Konwertuj na projekt Maven”

Teraz zniknął „Unsupported IClasspathEntry kind = 4 Eclipse Scala”.


5
Dzięki za to. Tylko uwaga dla innych, to mvn eclipse:cleannie jest mvn clean(dałem się zwieść nie zwracając uwagi).
Jin Kim,

Ok. Stworzyłem src / java z linii cmd, po zaimportowaniu projektu do Keplera. Tak było.
Zbyszek

43

Czasami nawet ponowne importowanie projektu Maven nie będzie działać. Prawidłowa aktualizacja projektu w środowisku Eclipse nie jest procesem deterministycznym. Jedyną w 100% bezpieczną procedurą, którą znalazłem, jest:

  1. Wyłącz Maven Nature, biegnij mvn eclipse:clean, uruchom ponownie, trzymaj kciuki i módl się 3 razy.
  2. Jeśli to nie zadziała, usuń projekt, uruchom mvn eclipse:clean, ponownie zaimportuj odświeżenie, módl się i użyj siły .
  3. Jeśli to nadal nie działa, uruchom ponownie Eclipse lub jeszcze lepiej komputer . Podczas oczekiwania na ponowne uruchomienie możesz przekazać losową darowiznę, aby naprawić swoją Karmę. Powtórz krok 2 i nie zapomnij modlić się i kontrolować swój gniew. Gniew prowadzi do nienawiści. Nienawiść prowadzi do cierpienia.
  4. Wypróbuj wszystkie pozostałe odpowiedzi zamieszczone w tym wątku. Być może będziesz musiał wypróbować je wszystkie przynajmniej 3 razy, zanim się poddasz.
  5. Sformatuj komputer, ponownie zainstaluj Eclipse i Maven . Nie musisz się już modlić, wszyscy bogowie i tak cię nienawidzą
  6. Usuń projekt git, wypal dysk fizyczny, na którym przechowywane jest zdalne repozytorium, i napisz projekt od zera.
  7. Znajdź wehikuł czasu , podróż do przeszłości i przekonaj się do następnej, nieprogramowej kariery, a przynajmniej unikaj Java

3
Próbowałem tego wszystkiego, powtarzając „Problem zarządzania zależnością Maven” lub „NullPointerException”
srirachapills,

1
Zachowaj spokój i uruchom ponownie Cofnij Powtórz
yannicuLar

1
Co Java kiedykolwiek ci zrobiła?
Zła pralka

2
@EvilWashingMachine Naprawdę nic złego .. Po prostu próbowałem wymyślić usprawiedliwienie za pomocą wehikułu czasu
yannicuLar

1
Zachowaj spokój i używaj vim + terminal
Pratik Singhal

12
  1. Upewnij się, że wersja uruchomionej wtyczki m2e (clipse) jest co najmniej 1.1.0

  2. Zamknij projekt maven - kliknij prawym przyciskiem myszy „Zamknij projekt”

  3. Ręcznie usuń wszystkie klasy classpathentry za pomocą kind = "var" w pliku .classpath
  4. Otwarty projekt

lub

  1. Usuń projekt maven
  2. Ręcznie rmeove .classpath 4 Reimport project

Błąd nie dotyczy STS, jak stwierdził @Marco. Jest to ogólny problem z m2e. Wyłącz naturę Maven, usuń plik .classpath, ponownie włącz naturę Maven.
sbzoom

6

Czy próbowałeś:

  1. Jeśli masz projekt zaimportowany do Eclipse 4, usuń go.
  2. W konsoli maven uruchom: mvn eclipse: clean
  3. W Eclipse 4: Plik -> Importuj -> Maven -> Istniejące projekty Maven

1
zanim to zrobisz, upewnij się, że wtyczka maven eclipse nie była wcześniej uruchomiona w projekcie. mvn eclipse: clean naprawi to w razie potrzeby.
Wybór

3
To działało dla mnie lepiej w Juno. Usunąłem projekty w Eclipse, a następnie ponownie zaimportowałem.
cs94njw

Brak efektu w Eclipse Kepler
Zbyszek

3

Widzę wszystkie inne odpowiedzi. Znalazłem dla mnie prostszy sposób.

Właśnie usunąłem wszystkie wiersze w .classpath (edycja za pomocą Eclipse) zawierające var i użyłem projektu maven -> update bez błędu.


To działało dla mnie, potrzebowałem również usunąć linię „jar”, ​​która zawierała jar maven.
dwjohnston

2

Ten błąd jest również zgłaszany, jeśli polecenie aktualizacji jest używane w projekcie opracowanym dla pokrycia kodu za pomocą Clover.

Aby rozwiązać w tym scenariuszu: Odznacz instrumenty folderów projektu, które chcesz zaktualizować. Ponownie uruchom aktualizację maven, a następnie instrument do pokrycia kodu.


0

Próbowałem kroków Marco, ale bez powodzenia. Zamiast tego, jeśli po prostu pobierzesz najnowszą wtyczkę m2e z linku, który on zapewnia, i klikniesz prawym przyciskiem myszy każdy projekt -> Maven -> Aktualizuj zależności, błąd nadal pojawia się, ale problem został rozwiązany. To znaczy, że ostrzeżenia znikają w widoku Markery. Ten problem napotkałem po zaimportowaniu niektórych projektów do SpringSource Tool Suite (STS). Gdy wróciłem do instalacji Eclipse Juno, pojawiały się ostrzeżenia. Widząc, że mam już m2e 1.1, wypróbowałem kroki Marco bezskutecznie. Jednak uzyskanie najnowszej wersji naprawiło to.


1
Dzięki, zredagowałem moją odpowiedź, aby podkreślić, że powinieneś dostać najnowszą wersję, a nie tylko 1.1.0, która była wówczas najnowszą wersją.
Marco

Jeśli użyjesz Eclipse MarketPlace zamiast pobierać za pośrednictwem strony zewnętrznej, zawsze otrzymasz najnowszą wersję.
Jops

0

Nie mogłem uzyskać mvn eclipse: clean itp. Do pracy z Keplerem.

Jednak zmieniłem tworzenie i rozszerzanie zmiennych, tak aby używały zewnętrznych słoików w mojej ścieżce klas zaćmienia. Znalazło to odzwierciedlenie w zmiennej var w mojej ścieżce .classpath.

To rozwiązało problem. Byłem w stanie zrobić aktualizację Maven.


0

Ten problem ( https://bugs.eclipse.org/394042 ) został naprawiony w m2e 1.5.0, który jest dostępny dla Eclipse Kepler i Luny z tego repozytorium p2:

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

Jeśli używasz również m2e-wtp, musisz również zainstalować m2e-wtp 1.1.0:

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


Pierwszy link pokazuje: „Przepraszamy, nie można znaleźć strony lub pliku. Oto kilka powodów, dla których ...”
Jaroslav Záruba

Powód nr 1 ma tutaj zastosowanie: jest to witryna aktualizacji / repozytorium p2 Eclipse; musisz uzyskać do niego dostęp z Eclipse (patrz help.eclipse.org/luna/index.jsp?topic=//… ).
Fred Bricon

0

Uaktualnienie z Kepler do Luna działało dla mnie.

Właśnie dodałem niektóre komponenty do obsługi Java 1.8. Wygląda na to, że nie były tak kompatybilne, jak bym chciał, lub że pomieszałem niewłaściwe. To naprawdę spowodowało wiele problemów. Próba aktualizacji systemu zgłosiła błędy, ponieważ nie mogły spełnić niektórych zależności. Ulepszenia Maven nie działały. Próbowałem wielu rzeczy.

Jeśli więc nie ma powodu, aby unikać aktualizacji, po prostu dodaj repozytorium luna do dostępnych witryn oprogramowania (Luna http://download.eclipse.org/releases/luna/ ) i „sprawdź dostępność aktualizacji”. Lepiej jest mieć wszystkie komponenty w tej samej wersji i jest kilka nowych, fajnych funkcji.


0

Próbowałem wszystkich kroków wymienionych tutaj i podobnych pytań, ale nie mogłem rozwiązać tego problemu. Nie mogłem ani rozwiązać problemu, ani zaktualizować mojego m2eclipse. Zainstalowałem więc Eclipse Luna i to rozwiązało mój problem ... chociaż to znaczy, że musiałem poświęcić około 45 minut na skonfigurowanie całego środowiska w moim obszarze roboczym.


0

Wypróbuj komendę mvn clean install eclipse: eclipse -Dwtpversion = 2.0 w wierszu komend DOS. Sugeruję ci, bo działało dla mnie !!


0

Używam Eclipse 4.3.2 (Kepler) z M2E 1.4.x i kilkakrotnie poradziłem sobie z tym problemem!

W moim przypadku polecenie „mvn eclipse: eclipse” generuje również konfigurację Checkstyle, PMD i Findbugs, więc „mvn eclipse: clean” mi nie pomaga, ponieważ ponownie usuwa wszystkie te pliki konfiguracyjne.

Najlepszym rozwiązaniem dla mnie było usunięcie wszystkich plików „.classpath”:

find . -name ".classpath" -delete

a następnie zaimportuj projekt do zaćmienia.


0

Przed zaimportowaniem projektu należy go przekonwertować na projekt Eclipse mvn eclipse: eclipse Następnie znalazłem następujący błąd. Wystąpił błąd wewnętrzny podczas: „Importowanie projektów Maven”. Nieobsługiwany IClasspathEntry kind = 4

Gdzie jest wartość kind = "var", której M2E nie rozpoznaje i dlatego zgłasza błąd.

Teraz wpisz to. mvn eclipse: clean

Teraz odśwież projekt zaćmieniem lub ponownie zaimportuj.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.