Отсутствующие зависимости Maven в проекте Eclipse - PullRequest
95 голосов
/ 24 ноября 2010

У нас есть проект с maven для разрешения зависимостей.Обычно он работает нормально, но сейчас я пытаюсь скомпилировать и запустить его на новом ПК, и у меня есть проблема с отсутствующими зависимостями в Eclipse.

Что забавно, если я запускаю "mvn package" в консолив затмении он работает нормально и даже производит войну, содержащую все необходимые банки.Только Eclipse жалуется: «Проект не был собран, поскольку его путь сборки не полный. Не удается найти файл класса для org.slf4j.Logger ...».Если я сравниваю проект с другим компьютером (на котором проект работает нормально), я замечаю, что в списке «Maven зависимостей» в Eclipse отсутствует несколько библиотек.Даже если они находятся в упакованной войне, и их также можно найти в папке репозитория.

Итак, jar-ы есть, просто Eclipse не перечислит их всех в разделе «Maven зависимости».Что я могу сделать?

Компьютер работает под управлением Windows 7 с 64-битной java & eclipse.

Ответы [ 33 ]

94 голосов
/ 07 декабря 2014

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

1) Откройте файл .classpath в корне проекта вашего затмения.

2) Вставьте следующую запись в файл:

<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
        <attributes>
            <attribute name="maven.pomderived" value="true"/>
            <attribute name="org.eclipse.jst.component.nondependency" value=""/>
        </attributes>
</classpathentry> 

Затем перестройте свой проект в Eclipse (Project-> Clean-Build). Теперь вы можете проверить на Java Build Path вашего проекта на вкладке Libraries включенные зависимости Maven: enter image description here

80 голосов
/ 24 ноября 2010

Проблема решена!

Я не знаю, что именно решило ее, но в Eclipse я сделал 4 вещи:

  • Window-> Предпочтения: Maven-> Установки: Глобальныенастройки -> открыть файл и жестко закодированный локальный репозиторий
  • Project-> Clean
  • щелкните правой кнопкой мыши проект: Maven-> Обновить зависимости
  • щелкните правой кнопкой мыши проект: Maven-> Обновить проектконфигурация

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

29 голосов
/ 27 декабря 2011

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

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

mvn dependency:tree

Если вы видите свой пакет там, но Eclipse не подтверждает его,у меня (иногда) работает то, что нужно пойти в терминал, перейти в папку проекта и набрать

mvn eclipse:clean затем mvn eclipse:eclipse

Наконец обновить проект в eclipse

Я не знаю, почему это работает, и иногда это не работает один раз, тогда повторение этого снова работает ... так что стоит попробовать!

26 голосов
/ 18 марта 2012

Мой проект только что облажался.Вот как я это исправил для Eclipse Indigo x64 (J2EE 3.7.3):

  1. Удалил мой POM-файл (конечно, резервная копия).
  2. Контекстное меню проекта > Maven > Отключить Maven Nature .
  3. Удален проект (но не содержимое на диске).
  4. Повторно импортирован как Импорт > Общие > Существующий проект .
  5. Контекстное меню проекта > Настройка > Преобразованиев Maven Project ... .
  6. Принять значения по умолчанию от мастера Maven.
  7. Перезаписать POM резервным POM.(Теперь у вас есть папка Maven Dependencies ).
  8. Обновление / очистка Maven для хорошей меры.

Надеюсь, что это кому-нибудь поможет.:)

25 голосов
/ 02 августа 2011

У меня была эта проблема для зависимостей, которые были созданы в других проектах.Загруженные сторонние зависимости хорошо видны в пути сборки, но не в созданной мной библиотеке.

SOLUTION: В проекте, который не собирается правильно,

  • Щелкните правой кнопкой мыши проект и выберите «Свойства», а затем «Maven».

  • Снимите флажок « Разрешить зависимости из проектов Workspace »

  • Нажмите Применить, а затем ОК.

  • Снова щелкните правой кнопкой мыши по своему проекту и выполните Maven-> Обновить снимки (или Обновить зависимости)

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

7 голосов
/ 06 января 2016

На тот случай, если кто-нибудь попробовал все остальные варианты, и вы все еще застряли, попробуйте щелкнуть правой кнопкой мыши папку проекта, перейдите к опции Maven и нажмите кнопку «Добавить зависимость». По какой-то причине Eclipse не обновляет зависимости вручную из pom.xml с первой попытки.

screen shot of menu selection

6 голосов
/ 07 декабря 2014

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

1) Откройте файл .classpath в корне проекта вашего затмения.

2) Вставьте следующую запись в файл:

<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
        <attributes>
            <attribute name="maven.pomderived" value="true"/>
            <attribute name="org.eclipse.jst.component.nondependency" value=""/>
        </attributes>
</classpathentry> 

Затем перестройте свой проект в Eclipse (Project-> Clean-Build).

5 голосов
/ 22 июня 2012

У меня была похожая проблема.Я решил это, запустив Maven-> Обновить конфигурацию проекта действие

4 голосов
/ 20 августа 2015

Для меня проблема в том, что maven не может найти файл settings.xml , который находится в myMavenFolder \ conf .

Что я сделал, чтобы исправитьпроблема заключалась в том, чтобы выбрать правильное расположение файла settings.xml из eclipse:
Окно -> Настройки -> Maven -> Настройки пользователя

Наконец, нажмите Применить и обновите свой проект

4 голосов
/ 20 января 2015

Так что я на 4 или 5 лет опоздал на эту вечеринку, но у меня была эта проблема после извлечения из нашего репо, и ни одно из других решений из этой темы не помогло в моем случае избавиться от этих предупреждений / ошибок.

Это сработало для меня:

Из Eclipse перейдите в Окно -> Настройки -> Maven (развернуть) -> Ошибки / предупреждения.Последняя опция гласит «Выполнение плагина, не охватываемое конфигурацией жизненного цикла» - используйте раскрывающееся меню для этой опции и переключите «Игнорировать», затем «Применить», затем «ОК».(В ответ на запрос «Требуется обновление Maven Projects» скажите «ОК»).

Дополнительная информация:

Это не обязательно «устраняет» основные проблемы и можетнекоторые не могут считаться «лучшей практикой», однако это должно убрать / подавить появление этих предупреждений в Eclipse и позволить вам двигаться вперед как минимум.В частности - я работал с Eclipse Luna Service Release 1 (4.4.1) с Spring Dashboard и Spring IDE Core (3.6.3) и m2e (1.5), работающих на Arch Linux и OpenJDK 1.7.Я импортировал свой проект как существующий проект maven и выбрал OK, когда получил предупреждение о существующих предупреждениях / ошибках (чтобы разобраться с ними позже).

Suppress/Remove

(Извините, я недизайнер, но добавили картинку для наглядности.)

...