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

412

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

"Updating Maven Project". Unsupported IClasspathEntry kind=4

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

user810430
источник
Работает ли сборка из командной строки? Какая версия Maven?
Хмарбайз
У меня та же проблема, и я не могу ответить на этот вопрос, пожалуйста, посмотрите stackoverflow.com/questions/12049566/…
Hemant Metalia

Ответы:

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: eclipse, вероятно, было запущено в проекте. Когда m2e встречает запись «var» .classpath, он выдает эту ошибку.

Сайты обновлений указаны по следующему адресу:
http://eclipse.org/m2e/m2e-downloads.html

Если вы не можете использовать m2e 1.5.0 по любой причине, то:

  1. Отключить Maven Nature для проекта (через меню правой кнопкой мыши)

  2. Запустить mvn eclipse:clean(пока ваш проект открыт в STS / eclipse). В зависимости от времени вам может потребоваться выполнить одно или два обновления проекта перед повторным включением природы maven. Вы должны увидеть, что ваш проект утратил свою мавенскую природу. (Цель eclipse:cleanсостоит в том, чтобы просто удалить файлы .project, .classpathи .settings/файлы / каталоги. Вы также можете просто удалить эти файлы (снова, когда проект открыт ) вместо запуска mvn eclipse:clean.)

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

Marco
источник
3
Я должен был попробовать это дважды, чтобы заставить это работать. В первый раз, когда я попробовал это, "var" снова попал в файл .classpath. Я восстановил файлы с помощью mvn eclipse: eclipse и попытался снова. Сработало 2 раза.
Дипак Бала
1
Это может помочь вручную удалить из файла .classpath все classpathentryс kindатрибутом, установленным в var.
Puigcerber
31
Это сработало для меня, но мне пришлось сделать дополнительное «Обновление», прежде чем снова включить природу Maven (фактически, в моем случае «Настроить как проект Maven», поскольку это был граненый проект)
Стюарт Уотт,
2
repository.sonatype.org/content/repositories/forge-sites/m2e больше не работает
Шервин Аскари
2
Я думаю, что вы ошибаетесь в версиях Eclipse: Eclipse Kepler - 4.3, а Luna - 4.4
vogella
63
  1. Щелкните правой кнопкой мыши свой проект, выберите Maven -> Remove Maven Nature.

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

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

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

Сагар
источник
5
Спасибо за это. Просто примечание для других, это mvn eclipse:cleanне так mvn clean(меня одурачили, не обращая пристального внимания).
Джин Ким
Хорошо. Я создал src / java из строки cmd после импорта проекта в Kepler. Это было так.
Збышек
43

Иногда даже повторный импорт проекта 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
yannicuLar
источник
3
Попробовал все это, продолжайте говорить «Проблема управления зависимостями Maven» или «NullPointerException»
srirachapills
1
Сохраняйте спокойствие и
возобновите
1
Что Java тебе когда-либо делала?
Злая стиральная машина
2
@EvilWashingMachine Ничего плохого на самом деле .. Просто попытался придумать оправдание, чтобы оправдать использование машины времени
yannicuLar
1
Сохраняйте спокойствие и пользуйтесь терминалом vim +
Пратик
12
  1. Убедитесь, что версия используемого вами плагина m2e (clipse) не ниже 1.1.0

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

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

или

  1. Удалить проект Maven
  2. Руководство rmeove .classpath 4 Реимпорт проекта
hicolour
источник
Ошибка не с STS, как заявлено @Marco. Это общая проблема. Отключите природу Maven, удалите файл .classpath, снова включите природу Maven.
sbzoom
6

Ты пытался:

  1. Если у вас есть проект импорта в eclipse 4, пожалуйста, удалите его.
  2. В maven consol запустите: mvn eclipse: clean
  3. В Eclipse 4: Файл -> Импорт -> Maven -> Существующие проекты Maven
Tam
источник
1
перед этим убедитесь, что плагин maven eclipse не был запущен в проекте ранее. mvn eclipse: clean исправит это при необходимости.
Выбор
3
Это работало лучше для меня в Юноне. Я удалил проекты в Eclipse, а затем повторно импортировал.
cs94njw
В Eclipse Kepler нет эффекта
Zbyszek
3

Видя все остальные ответы. Я нашел для меня более простой способ.

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

Keiki
источник
Это сработало для меня, также необходимо было удалить строку «jar», которая содержала банку maven.
dwjohnston
2

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

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

Andreis
источник
0

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

user1444080
источник
1
Спасибо, отредактировал мой ответ, чтобы подчеркнуть, что вы должны получить последнюю версию, а не только 1.1.0, которая была в то время последней версией.
Марко
Если вы используете Eclipse MarketPlace вместо загрузки с внешнего сайта, вы всегда получите самую последнюю версию.
Jops
0

Я не мог получить mvn eclipse: clean и т. Д. Для работы с Kepler.

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

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

user1069528
источник
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 применима здесь: Это репозиторий сайта обновлений Eclipse / p2; Вы должны получить к нему доступ из Eclipse (см. help.eclipse.org/luna/index.jsp?topic=//… ).
Фред Брикон
0

Обновление с Кеплера до Луны сработало для меня.

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

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

borjab
источник
0

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

simpleDev
источник
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

и импортировать проект в затмение впоследствии.

TekTimmy
источник
0

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

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

Теперь введите это. мвн затмение: чистое

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

Супун Дхармаратна
источник