Як виправити помилку "Оновлення проекту Maven". Непідтримуваний вид IClasspathEntry = 4?


412

Я імпортував проект Maven в STS, коли запускаю проект оновлення оновлення, отримую:

"Updating Maven Project". Unsupported IClasspathEntry kind=4

Чи існує рішення для цього?


Чи працює побудова на командному рядку? Яка версія Maven?
khmarbaise

У мене така ж проблема , і я не в змозі SLOVE ця відповідь ви можете побачити , будь ласка stackoverflow.com/questions/12049566 / ...
Hemant Метален

Відповіді:


613

Ця проблема була виправлена ​​в m2e 1.5.0, яка доступна для Eclipse Kepler (4.3) та Luna (4.4)

Перегляньте https://bugs.eclipse.org/bugs/show_bug.cgi?id=374332#c14

Проблема викликана тим, що STS (Spring IDE / Eclipse), а також Eclipse та інші IDE на основі Eclipse використовують плагін m2e (clipse), але це затемнення: eclipse, ймовірно, було запущено в проекті. Коли m2e стикається із записом "var" .classpath, він видає цю помилку.

Сайти оновлень визначаються за наступною URL-адресою:
http://eclipse.org/m2e/m2e-downloads.html

Якщо ви не можете використовувати m2e 1.5.0 з будь-якої причини, тоді:

  1. Вимкнення природи Maven для проекту (через меню правою кнопкою миші)

  2. Виконати mvn eclipse:clean(поки ваш проект відкритий в STS / eclipse). Залежно від термінів, можливо, вам доведеться зробити оновлення або два в проекті, перш ніж повторно ввімкнути характер Maven. Ви повинні бачити, що ваш проект втратив природу Maven. (The eclipse:cleanмети просто видаляє .project, .classpathі .settings/файли / каталоги. Ви також можете просто видалити ці файли (знову ж в той час як проект відкритий ) , а не працює mvn eclipse:clean.)

  3. Повторно ввімкніть мавенську природу.
    (У більшості випадків це можна зробити, клацнувши правою кнопкою миші на розглянутому проекті на панелі провідника пакунків, а потім виберіть "Налаштувати" -> "Перетворити на проект Maven")


3
Мені довелося спробувати це двічі, щоб змусити його працювати. Перший раз, коли я спробував це, "var" пробрався назад у файл .classpath. Я відновив файли mvn eclipse: eclipse і спробував ще раз. Це спрацювало 2-й раз.
Діпак Бала

1
Це може допомогти видалити з файлу .classpath вручну все те, classpathentryз яким kindвстановлено атрибут var.
Puigcerber

31
Це працювало для мене, але мені довелося зробити додаткове "Оновити", перш ніж повторно ввімкнути природу Мейвена (насправді в моєму випадку "Налаштувати проект Maven", оскільки це був граняний проект)
Stuart Watt


2
Я думаю, ви неправильно переходите до версій Eclipse: Eclipse Kepler - 4,3, а Luna - 4,4
vogella

63
  1. Клацніть правою кнопкою миші проект, виберіть Maven -> Remove Maven Nature.

  2. Відкрийте свій термінал, перейдіть до папки свого проекту і зробіть mvn eclipse:clean

  3. Клацніть правою кнопкою миші на своєму проекті та виберіть "Налаштувати -> Перетворити в проект Maven"

Тепер ви зникли "Непідтримуваний вид IClasspathEntry = 4 Eclipse Scala".


5
Дякую за це Просто примітка для інших, це так mvn eclipse:clean, ні mvn clean(я обдурив себе, не звертаючи пильної уваги).
Джин Кім

Добре. Я створив src / java з cmd-рядку після імпорту проекту в Kepler. Так було.
Zbyszek

43

Іноді навіть повторний імпорт проекту Maven не вийде. Оновлення проекту правильно у затемненні не є детермінованим процесом. Єдина 100-відсоткова безпечна процедура, яку я знайшов:

  1. Вимкніть Maven Nature, запустіть mvn eclipse:clean, перезавантажте, схрестіть пальці та моліться 3 рази.
  2. Якщо це не спрацює, видаліть проект, запустіть mvn eclipse:clean, повторно імпортуйте оновлення, моліться та використовуйте силу .
  3. Якщо це все ще не працює, перезавантажте Eclipse або ще краще ваш комп’ютер . Дочекавшись перезавантаження, ви можете зробити випадкове пожертвування, щоб виправити свою карму. Повторіть крок 2 і не забувайте молитися і контролювати свій гнів. Гнів призводить до ненависті. Ненависть призводить до страждань.
  4. Спробуйте всі інші відповіді, розміщені в цій темі. Можливо, вам доведеться спробувати їх усі 3 рази хоча б перед тим, як відмовитися.
  5. Відформатуйте свій комп’ютер, перевстановіть Eclipse та Maven . Більше не потрібно молитися, всі боги все одно вас ненавидять
  6. Видаліть проект git, запишіть фізичний диск, який зберігав віддалене сховище, і напишіть проект з нуля.
  7. Знайдіть машину часу , вирушайте в минуле і переконайте себе слідувати іншій кар’єрі, яка не програмує, або принаймні уникати Java

3
Спробував усе, продовжуйте говорити "Проблема управління залежністю Maven" або "NullPointerException"
srirachapills

1
Зберігайте спокій і перезапустіть скасування повтору
yannicuLar

1
Що вам зробив Java?
Зла пральна машина

2
@EvilWashingMachine Насправді нічого поганого .. Просто спробував виправдати виправдання, використовуючи машину часу
yannicuLar

1
Будьте спокійні і користуйтеся vim + терміналом
Pratik Singhal

12
  1. Переконайтеся, що версія плагіну m2e (clipse), яку ви працюєте, принаймні 1.1.0

  2. Закрити проект Maven - клацніть правою кнопкою миші «Закрити проект»

  3. Вручну видаліть усі classpathentry з kind = "var" у .classpath-файлі
  4. Відкритий проект

або

  1. Видалити проект Maven
  2. Підручник rmeove .classpath 4 Реімпорт проекту

Помилка не в STS, як заявив @Marco. Це загальна проблема m2e. Вимкніть природу Maven, видаліть .classpath файл, знову ввімкніть природу Maven.
sbzoom

6

Ти намагався:

  1. Якщо ви імпортуєте проект у затемнення 4, видаліть його.
  2. У Maven consool, запустіть: mvn eclipse: чистий
  3. У Eclipse 4: Файл -> Імпорт -> Maven -> Існуючі проекти Maven

1
перш ніж зробити це, переконайтеся, що плагін Maven eclipse не був запущений у проекті раніше. mvn eclipse: clean виправить це за потреби.
AChoice

3
Це працювало для мене краще в Juno. Я видалив проекти в Eclipse, а потім повторно імпортував.
cs94njw

Немає ефекту в Eclipse Kepler
Zbyszek

3

Побачивши всі інші відповіді. Я знайшов для мене більш простий спосіб.

Я просто видалив усі рядки в .classpath (редагування затемненням), що містить var, і використав проект оновлення maven -> без помилки.


Це працювало для мене, також потрібно було видалити лінію "jar", яка містила банку Maven.
dwjohnston

2

Ця помилка також скидається, якщо команда оновлення використовується для проекту, призначеного для покриття коду Clover.

Для вирішення цього сценарію: Не інструментуйте папки проекту, які ви хочете оновити. Запустіть оновлення Maven, а потім інструмент для покриття коду знову.


0

Я спробував кроки Марко, але не пощастило. Натомість, якщо ви просто отримаєте останній плагін m2e із посилання, яке він надає, і один за одним клацніть правою кнопкою миші на кожному проекті -> Maven -> Оновити залежність, помилка все-таки з’являється, але проблема вирішена. Тобто попередження зникають у поданні Маркери. Я зіткнувся з цією проблемою після імпортування деяких проектів у SpringSource Tool Suite (STS). Коли я повернувся до своєї установки Eclipse Juno, попередження відображалися. Побачивши, що у мене вже встановлено m2e 1.1, я спробував кроки Марко безрезультатно. Однак виправлення останньої версії.


1
Дякую, відредагувавши мою відповідь, щоб підкреслити, що ви повинні отримати останню версію, а не лише 1.1.0, яка була на той час останньою версією.
Марко

Якщо ви використовуєте Eclipse MarketPlace замість завантаження через зовнішній сайт, ви завжди отримаєте останню версію.
Jops

0

Я не міг отримати mvn eclipse: очистити тощо, щоб працювати з Kepler.

Однак я змінив створення та розширення змінних на просто використання зовнішніх банок у своєму класі eclipse. Це знайшло своє відображення в жодному варі на моєму .classpath.

Це виправило проблему. Мені вдалося зробити оновлення Maven.


0

Ця проблема ( https://bugs.eclipse.org/394042 ) виправлена ​​в m2e 1.5.0, який доступний для Eclipse Kepler та Luna з цього репортажу p2:

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

Якщо ви також використовуєте m2e-wtp, вам також потрібно встановити m2e-wtp 1.1.0:

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


Посилання на фіртки дає результат "Вибачте, сторінку чи файл неможливо знайти. Ось кілька причин, чому ..."
Ярослав Заруба,

Причина №1 застосовується тут: Це веб-сайт / сховище P2 для оновлення Eclipse; ви повинні отримати доступ до нього з Eclipse (див. help.eclipse.org/luna/index.jsp?topic=//… ).
Фред Брікон

0

Модернізація від Кеплера до Луни працювала на мене.

Я щойно додав деякі компоненти підтримки Java 1.8. Здається, вони там, де не такі сумісні, як хотілося б, або що я змішував неправильні. Це справді спричинило багато проблем. Намагаючись оновити систему, повідомлялося про помилки, оскільки вони не могли виконати деякі залежності. Оновлення Maven не спрацювали. Перепробував багато речей.

Отже, якщо немає підстав уникати оновлення, просто додайте сховище luna на сайти програмного забезпечення, що доступні (Luna http://download.eclipse.org/releases/luna/ ) і "перевірити наявність оновлень". Краще мати всі компоненти з однаковою версією і є кілька приємних нових функцій.


0

Я спробував усі зазначені тут кроки та подібні запитання, але не зміг вирішити цю проблему. Я не міг ні вирішити проблему, ні оновити m2eclipse. Тому я встановив Eclipse Luna, і це вирішило мою проблему ... хоча це означає, що мені довелося витратити близько 45 хв, щоб налаштувати все середовище в моїй робочій області.


0

Спробуйте команду mvn clean install eclipse: eclipse -Dwtpversion = 2.0 у командному рядку DOS. Пропоную вам, бо це працювало на мене !!


0

Я використовую Eclipse 4.3.2 (Kepler) з M2E 1.4.x і відчував цю проблему кілька разів!

У моєму випадку команда "mvn eclipse: eclipse" також генерує конфігурацію Checkstyle, PMD та Findbugs, тому "mvn eclipse: clean" не допомагає мені, оскільки вона знову скидає всі ці конфігураційні файли.

Найкращим рішенням для мене було видалення всіх файлів ".classpath":

find . -name ".classpath" -delete

а потім імпортувати проект у затемнення.


0

Перш ніж імпортувати проект, його слід перетворити на проект eclipse mvn eclipse: eclipse Тоді я виявив таку помилку. Внутрішня помилка сталася під час: "Імпорт проектів Maven". Непідтримуваний вид IClasspathEntry = 4

Де значення "kind =" var ", яке M2E не розпізнає і тому видає помилку.

Тепер наберіть це. mvn затемнення: чистий

Тепер оновіть проект у затемненні або повторно імпортуйте.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.