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

405

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

"Updating Maven Project". Unsupported IClasspathEntry kind=4

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

  • 0
    Работает ли сборка из командной строки? Какая версия Maven?
  • 1
    СТС - это затмение + плагины
Показать ещё 1 комментарий
Теги:
maven
m2eclipse
eclipse-wtp

14 ответов

577
Лучший ответ

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

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

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

  • Отключите функцию maven для проекта (с помощью меню правой кнопки мыши)

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

  • Восстановите природу maven.
    (В большинстве случаев это можно сделать, щелкнув правой кнопкой мыши на рассматриваемом проекте в панели проводника пакета, а затем выбрав "Configure" → "Convert to Maven Project" )

  • 3
    Я должен был попробовать это дважды, чтобы заставить это работать. В первый раз, когда я попробовал это, "var" снова попал в файл .classpath. Я восстановил файлы с помощью mvn eclipse: eclipse и попытался снова. Сработало 2 раза.
  • 1
    Это может помочь вручную удалить из файла .classpath все classpathentry с атрибутом kind установленным в var .
Показать ещё 14 комментариев
58
  • Щелкните правой кнопкой мыши на своем проекте, выберите Maven → Remove Maven Nature.

  • Откройте терминал, перейдите в папку проекта и mvn eclipse:clean

  • Щелкните правой кнопкой мыши на своем проекте и выберите "Настроить → Преобразовать в проект Maven"

Теперь у вас появляется "Неподдерживаемый класс IClasspathEntry kind = 4 Eclipse Scala".

  • 5
    Спасибо за это. Просто примечание для других, это mvn eclipse:clean , а не mvn clean (меня обманули, не обращая пристального внимания).
  • 2
    Не работает для Eclipse Kepler m2e 1.4
Показать ещё 1 комментарий
39

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

  • Отключите Maven Nature, запустите mvn eclipse:clean, перезапустите, скрестите пальцы и Молитесь 3 раза.
  • Если это не сработает, удалите проект, запустите mvn eclipse:clean, повторно импортируйте обновление, молитесь и используйте силу.
  • Если это все еще не работает, перезапустите Eclipse или даже лучше компьютер. Ожидая перезагрузки, вы можете сделать случайное пожертвование, чтобы исправить свою Карму. Повторите шаг 2 и не забывайте молиться и контролировать свой гнев. Гнев ведет к ненависти. Ненависть ведет к страданиям.
  • Попробуйте все остальные ответы, размещенные в этой теме. Возможно, вам придется попробовать их всех в течение 3-х раз, прежде чем сдаться.
  • Формат вашего компьютера, переустановить Eclipse и Maven. Не нужно больше молиться, все боги ненавидят вас в любом случае
  • Удалите проект git, записать физический диск, который хранит удаленный репозиторий, и напишите проект с нуля.
  • Найдите машину времени, отправляйтесь в прошлое и убеждайте себя, что следуйте за другой, не-программирующей карьерой или, по крайней мере, чтобы избежать Java
  • 3
    Попробовал все это, продолжайте говорить «проблема управления зависимостями Maven» или «NullPointerException»
  • 1
    Сохраняйте спокойствие и перезапустите Отмена Повторите
Показать ещё 4 комментария
12
  • Убедитесь, что версия используемого вами плагина m2e (clipse) не меньше 1.1.0

  • Закрыть проект maven - щелкните правой кнопкой мыши "Закрыть проект"

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

или

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

Вы пробовали:

  • Если у вас есть проект импорта в eclipse 4, удалите его.
  • В maven-консоле выполните: mvn eclipse: clean
  • В Eclipse 4: Файл → Импорт → Maven → Существующие проекты Maven
  • 1
    перед этим убедитесь, что плагин maven eclipse не был запущен в проекте ранее. mvn eclipse: clean исправит это при необходимости.
  • 3
    Это работало лучше для меня в Юноне. Я удалил проекты в Eclipse, а затем повторно импортировал.
Показать ещё 1 комментарий
3

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

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

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

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

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

0

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

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

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

find . -name ".classpath" -delete

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

0

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

0

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

0

Модернизация от Кеплера до Луны работала для меня.

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

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

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

  • 0
    Первая ссылка приводит к «Извините, страница или файл не могут быть найдены. Вот несколько причин, почему ...»
  • 0
    Причина № 1 применима здесь: Это репозиторий сайта обновлений Eclipse / p2; Вы должны получить к нему доступ из Eclipse (см. help.eclipse.org/luna/index.jsp?topic=//… ).
0

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

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

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

0

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

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню