Почему Eclipse висит на 57% со статусом "Проверка атрибутов запуска..." при запуске конфигурации запуска?

После недавнего перехода на Maven из Ant, запуск конфигураций, которые были запущены непосредственно перед Maven, занимает слишком много времени и потребляет ненормальное количество ресурсов, в то время как Eclipse готовится к запуску проектов.

Eclipse показывает это сообщение статуса:

Verifying launch attributes...

При завершении 57% Eclipse зависает в течение нескольких минут, прежде чем, наконец, запустит конфигурацию запуска. После запуска проект работает нормально и без проблем.

Я нашел эту статью в блоге, которая предложила очистить локальное рабочее пространство, но это не решило проблему, особенно учитывая, что автор использует Git, и я нет.

Я использую только последний плагин m2e maven с последней версией Eclipse.

Что заставляет Eclipse блокироваться при запуске этих конфигураций запуска и как его исправить?

Ответы

Ответ 1

У меня были те же симптомы. Я мог бы исправить это, установив

Eclipse -> Preferences -> Maven -> User Settings

Мой файл настроек пользователя maven хранился в удаленной папке. После перемещения файла на локальный диск, тест теперь запускается мгновенно снова.

Ответ 2

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

Чтобы предотвратить зависание Eclipse, откройте все файлы .classpath, на которые ссылаются проекты, которые должны находиться в корневой директории проекта.

Удалите все записи, у которых src в качестве значения атрибута kind.

Например:

<classpathentry kind="src" path="src"/>

Как только все эти записи будут удалены, Eclipse мгновенно запустит ваш проект.

Ответ 3

Я знаю, что это довольно старый вопрос, но сейчас у меня эта проблема, и ни одно из решений, найденных в Интернете, похоже, не работает:

В конце концов я узнал (как-то), что наличие дубликатов файлов .classpath в рабочей области может вызвать серьезные проблемы. При импорте многомодульного проекта maven вы можете легко сделать это, импортировав все ваши модули и ваш главный модуль (модуль типа pom). Таким образом, вы фактически импортируете все дважды. Закрытие этого главного модуля в Eclipse решило проблему для меня. Другим обходным решением было бы не полагаться на m2eclipse и использовать mvn eclipse: eclipse, а затем импортировать ваши проекты как "существующий проект".

Ответ 4

К сожалению, информация о ходе запуска в Eclipse не очень точна. Значение 57% - это место, где происходит вся тяжелая работа (см., Например, ошибку 354338).

Если вы запускаете приложение Eclipse или тесты плагинов JUnit, убедитесь, что на вашей целевой платформе установлены следующие плагины:

  • org.junit
  • org.eclipse.jdt.junit.runtime
  • org.eclipse.jdt.junit4.runtime
  • org.eclipse.pde.junit.runtime

В противном случае Eclipse будет выполнять поиск по всему кэшу p2 (в моем случае более 6000 jar файлов плагинов занимает более 5 минут) для этих плагинов.

Ответ 5

Я нашел этот способ, чтобы избежать "проверки атрибутов запуска... 57%" в Eclipse-Luna-SR2

  • имеют конфигурацию запуска и основной класс в разных проектах
  • удалите следующую строку из конфигурации запуска:

    <stringAttribute key="org.eclipse.jdt.launching.CLASSPATH_PROVIDER" value="org.eclipse.m2e.launchconfig.classpathProvider"/>
    

Ответ 6

С eclipse 2018-12 у меня была задержка около 10 секунд на "57%, проверка атрибутов запуска" для каждого запуска основного класса или теста junit. Я использовал инструмент windows "procMon", чтобы определить около 500 000 неудачных попыток доступа к банкам за этот период, которых у меня нет в моем classpath. Я нашел эти ссылки на банку внутри записи "Class-Path" во многих банках, которые я использую. После удаления записи Class-Path из всех банок задержка теперь составляет всего 1 секунду!

Некоторые банки были подписаны. Затем мне пришлось удалить файлы подписи (META-INF/*.SF|*.DSA|*.RSA|*.EC) из банки.