Как исправить ошибку при обновлении проекта Maven. Неподдерживаемый тип IClasspathEntry = 4?

Я импортировал проект maven в STS, когда я запускаю проект обновления, я получаю:

"Updating Maven Project". Unsupported IClasspathEntry kind=4

Есть ли обходной путь для этого?


person user810430    schedule 12.05.2012    source источник
comment
Работает ли сборка из командной строки? Какая версия Maven?   -  person khmarbaise    schedule 12.05.2012
comment
У меня такая же проблема, и я не могу понять этот ответ. Не могли бы вы увидеть stackoverflow.com/questions/12049566/   -  person Hemant Metalia    schedule 21.08.2012


Ответы (15)


Эта проблема исправлена ​​в 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: 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 nature. Вы должны увидеть, что ваш проект утратил свою природу Maven. (Цель eclipse:clean просто удаляет файлы / каталоги .project, .classpath и .settings/. Вы также можете просто удалить эти файлы (опять же пока проект открыт) вместо запуска mvn eclipse:clean.)

  3. Повторно включите природу maven.
    (В большинстве случаев это можно сделать, щелкнув правой кнопкой мыши соответствующий проект в панели проводника пакетов и выбрав «Настроить» -> «Преобразовать в проект Maven»)

person Marco    schedule 14.05.2012
comment
Мне пришлось попробовать это дважды, чтобы заставить его работать. В первый раз, когда я попробовал, переменная снова вернулась в файл .classpath. Я восстановил файлы с помощью mvn eclipse: eclipse и попробовал снова. Сработало второй раз. - person Deepak Bala; 01.08.2012
comment
Может помочь вручную удалить из файла .classpath все classpathentry с атрибутом kind, установленным на var. - person Puigcerber; 21.08.2012
comment
В ответе выше: отключите природу maven для проекта (через контекстное меню), запустите mvn eclipse: clean (пока ваш проект открыт в STS / eclipse), а затем снова включите природу maven. У меня это сработало. Спасибо за публикацию! Эрик - person Eric Manley; 24.08.2012
comment
Это сработало для меня, но мне пришлось сделать дополнительное обновление перед повторным включением природы Maven (на самом деле в моем случае Configure as Maven Project, поскольку это был многогранный проект) - person Stuart Watt; 28.08.2012
comment
repository.sonatype.org/content/repositories/forge-sites/m2e больше не работает - person Shervin Asgari; 31.08.2012
comment
Большое спасибо за этот ответ. Мне действительно приходилось следовать этим указаниям пару раз. Кроме того, следствием запуска mvn eclipse: eclipse в первый раз является то, что он помещает все мои зависимости maven в корень проекта, а не в папку Maven dependencies. Следуя вашим инструкциям, эта проблема также была решена. - person Lolo; 28.09.2012
comment
'mvn eclipse: clean' удалит eclipse-nature, ранее добавленное с помощью eclipse: eclipse. после этого пусть m2e сделает всю работу. - person AChoice; 11.10.2012
comment
Для тех, кто сталкивается с этой проблемой с Hadoop, обратная сторона того, что m2e выполняет всю работу, заключается в том, что сгенерированные исходные папки не распознаются. Вы должны вручную добавить в качестве исходных папок любые _1 _ / _ 2 _ / _ 3_ папки в target/generated-sources или generated-test-sources. Щелкните правой кнопкой мыши ›Путь сборки› Использовать как исходную папку. - person Trevor Robinson; 26.10.2012
comment
Я не могу отключить природу maven. Нет ответа. Я много-много чего пробовал, но продолжаю хожу по кругу. - person Marc; 23.12.2012
comment
@Marc: в противном случае вы можете просто удалить проект из eclipse (но не файлы), запустить mvn eclipse: clean, а затем повторно открыть проект и (повторно) добавить проект, создав новый проект с тем же именем, что и старый проект . - person Marco; 26.12.2012
comment
Кстати, мне пришлось полностью повторно импортировать все мои проекты после того, как я удалил maven nature. Повторное включение тогда не появилось. Но это устранило мои проблемы. Большое спасибо. - person Gray; 15.01.2013
comment
Перед выполнением дополнительного обновления, как сказал Стюарт Ватт, мне также пришлось удалить папку .settings. - person Adrian Ber; 29.09.2013
comment
Я думаю, вы ошибаетесь в версиях Eclipse: Eclipse Kepler - 4.3, а Luna - 4.4. - person vogella; 09.07.2014
comment
Вы уверены, что m2e 1.5.0 совместим с Kepler? Мне нужно было перейти на Luna перед обновлением до 1.5.0. - person Murat; 12.08.2014
comment
У меня это сработало, но мне пришлось сделать еще одну вещь. Щелкните правой кнопкой мыши проект - ›Свойства -› Свойства развертывания - ›Добавить записи пути сборки Java -› Выбрать все файлы - ›Применить. И готово! - person Badal; 09.09.2014

  1. Щелкните проект правой кнопкой мыши и выберите Maven -> Remove Maven Nature.

  2. Откройте терминал, перейдите в папку своего проекта и выполните mvn eclipse:clean

  3. Щелкните правой кнопкой мыши свой проект и выберите «Настроить -> Преобразовать в проект Maven».

Теперь у вас исчезло сообщение «Unsupported IClasspathEntry kind = 4 Eclipse Scala».

person Sagar    schedule 15.10.2012
comment
Спасибо за это. Просто замечание для других, это mvn eclipse:clean, а не mvn clean (меня одурачило то, что я не обратил пристального внимания). - person Jin Kim; 05.11.2012
comment
Ok. Я создал src / java из строки cmd после импорта проекта в Kepler. Так и было. - person Zbyszek; 17.08.2013

Иногда даже повторный импорт проекта Maven не работает. Правильное обновление проекта в eclipse не является детерминированным процессом. Единственная 100% отказоустойчивая процедура, которую я нашел:

  1. Отключите Maven Nature, запустите mvn eclipse:clean, перезапустите, скрестите пальцы и помолитесь 3 раза.
  2. Если это не сработает, удалите проект, запустите mvn eclipse:clean, повторно импортируйте обновление, помолитесь и примените силу.
  3. Если это по-прежнему не работает, перезапустите Eclipse или, что еще лучше, компьютер. Ожидая перезагрузки, вы можете сделать случайное пожертвование, чтобы исправить свою карму. Повторите шаг 2 и не забывайте молиться и контролировать свой гнев. Гнев ведет к ненависти. Ненависть ведет к страданиям.
  4. Попробуйте все остальные ответы, опубликованные в этой теме. Возможно, вам придется попробовать их все по крайней мере 3 раза, прежде чем отказаться.
  5. Отформатируйте компьютер, переустановите Eclipse и Maven. Больше не нужно молиться, все боги все равно тебя ненавидят
  6. Удалите проект git, запишите физический диск, на котором хранился удаленный репозиторий, и напишите свой проект с нуля.
  7. Найдите машину времени, отправьтесь в прошлое и убедите себя выбрать другую карьеру, не связанную с программированием, или, по крайней мере, избегать Java.
person yannicuLar    schedule 24.03.2014
comment
Пробовал все это, продолжайте говорить проблема управления зависимостями Maven или NullPointerException - person srirachapills; 22.04.2014
comment
Сохраняйте спокойствие и перезапустите Отменить повтор - person yannicuLar; 17.06.2014
comment
Что Java сделала с вами? - person Evil Washing Machine; 10.08.2016
comment
@EvilWashingMachine Ничего плохого на самом деле .. Просто попытался придумать предлог, чтобы оправдать использование машины времени - person yannicuLar; 10.08.2016
comment
Сохраняйте спокойствие и используйте терминал vim + - person Pratik Singhal; 15.05.2017

  1. Убедитесь, что версия используемого плагина m2e (clipse) не ниже 1.1.0.

  2. Закройте проект maven - щелкните правой кнопкой мыши «Закрыть проект».

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

or

  1. Удалить проект maven
  2. Вручную rmeove .classpath 4 Реимпорт проекта
person hicolour    schedule 21.08.2012
comment
Ошибка не связана с STS, как заявил @Marco. Это общая проблема с m2e. Отключите природу Maven, удалите файл .classpath, снова включите природу Maven. - person sbzoom; 22.08.2012

Ты пробовал:

  1. Если у вас есть проект импорта в eclipse 4, удалите его.
  2. В консоли maven запустите: mvn eclipse: clean
  3. В Eclipse 4: Файл -> Импорт -> Maven -> Существующие проекты Maven
person Tam    schedule 26.08.2012
comment
перед этим убедитесь, что плагин maven eclipse не запускался в проекте ранее. mvn eclipse: clean исправит это при необходимости. - person AChoice; 11.10.2012
comment
В «Юноне» у меня это сработало лучше. Я удалил проекты в Eclipse, а затем повторно импортировал. - person cs94njw; 21.02.2013
comment
Нет эффекта в Eclipse Kepler - person Zbyszek; 17.08.2013

Увидеть все остальные ответы. Я нашел для себя способ попроще.

Я просто удалил все строки в .classpath (редактирование с помощью eclipse), содержащие var, и без ошибок использовал проект maven -> update.

person keiki    schedule 11.03.2014
comment
Это сработало для меня, также необходимо удалить строку jar, содержащую jar maven. - person dwjohnston; 14.04.2015

Эта ошибка также возникает, если команда обновления используется в проекте, оснащенном для покрытия кода Clover.

Чтобы решить эту проблему: снимите инструмент с папок проекта, которые вы хотите обновить. Запустите обновление maven, затем снова проверьте покрытие кода.

person Andreis    schedule 26.07.2012

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

person user1444080    schedule 02.08.2012
comment
Спасибо, мой ответ отредактировал, чтобы подчеркнуть, что вы должны получить последнюю версию, а не только 1.1.0, которая в то время была последней версией. - person Marco; 03.08.2012
comment
Если вы используете Eclipse MarketPlace вместо загрузки через внешний сайт, вы всегда получите последнюю версию. - person Jops; 30.03.2013

Мне не удалось заставить mvn eclipse: clean и т. Д. Работать с Kepler.

Однако я изменил создание и расширение переменных на использование только внешних jar-файлов в моем пути к классам eclipse. Это отразилось в no var в моем .classpath.

Это устранило проблему. Я смог сделать обновление Maven.

person user1069528    schedule 01.10.2013

Эта проблема (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

person Fred Bricon    schedule 10.05.2014
comment
Первая ссылка дает К сожалению, страница или файл не могут быть найдены. Вот несколько причин, почему ... - person Jaroslav Záruba; 28.06.2014
comment
Причина №1 применима здесь: это репозиторий сайта / p2 обновлений Eclipse; вы должны получить к нему доступ из Eclipse (см. help.eclipse.org/luna/index.jsp?topic = //). - person Fred Bricon; 30.06.2014

У меня сработало обновление с Kepler до Luna.

Я только что добавил некоторые компоненты для поддержки Java 1.8. Кажется, что они не так совместимы, как хотелось бы, или я перепутал не те. Это действительно вызвало массу проблем. Попытка обновить систему сообщила об ошибках, поскольку они не могли выполнить некоторые зависимости. Обновления Maven не работали. Много чего перепробовал.

Итак, если нет причин избегать обновления, просто добавьте репозиторий luna на доступные сайты программного обеспечения (Luna http://download.eclipse.org/releases/luna/) и «проверить наличие обновлений». Лучше иметь все компоненты одной и той же версии, и есть несколько хороших новых функций.

person borjab    schedule 08.09.2014

Я попробовал все шаги, упомянутые здесь и по аналогичным вопросам, но не смог решить эту проблему. Я не мог ни решить проблему, ни обновить свой m2eclipse. Итак, я установил Eclipse Luna, и он решил мою проблему ... хотя это означает, что мне пришлось потратить около 45 минут на настройку всей среды в моем рабочем пространстве.

person Kanad    schedule 20.10.2014

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

person Bharat    schedule 07.01.2015

Я использую Eclipse 4.3.2 (Kepler) с M2E 1.4.x и несколько раз сталкивался с этой проблемой!

В моем случае команда «mvn eclipse: eclipse» также генерирует конфигурацию Checkstyle, PMD и Findbugs, поэтому «mvn eclipse: clean» мне не помогает, потому что она снова удаляет все эти файлы конфигурации.

Лучшим решением для меня было удалить все файлы ".classpath":

find . -name ".classpath" -delete

и затем импортируйте проект в eclipse.

person TekTimmy    schedule 18.03.2015

Перед импортом проекта он должен быть преобразован в проект eclipse mvn eclipse: eclipse Затем я обнаружил следующую ошибку. Произошла внутренняя ошибка: «Импорт проектов Maven». Неподдерживаемый тип IClasspathEntry = 4

Где значение kind = "var", которое M2E не распознает и поэтому выдает ошибку.

Теперь введите это. mvn eclipse: чистый

Теперь обновите проект в eclipse или повторно импортируйте.

person Supun Dharmarathne    schedule 01.06.2018