Подтвердить что ты не робот

M2eclipse говорит "Отсутствует артефакт", но я могу построить из cmdline!

Я пытаюсь использовать этот плагин Sonatype Eclipse в первый раз для обработки существующего (огромного) программного обеспечения, которое я могу построить с помощью maven из командной строки.

Я настроил плагин для использования моей установки maven 2.2.1 вместо встроенного Maven 3.

В Eclipse у меня есть 25 проектов (загружаемых через root pom.xml), и у 4 из них есть ошибки компиляции; консоль maven содержит много строк, подобных этой:

Отсутствует ведение журнала артефактов: commons-logging: jar: 1.0.4: compile

У меня есть все банки в моем репозитории и переменная класса M2_REPO правильно определена. Почему плагин не видит все банки?

Файл .classpath этих проектов просто ссылается на "MAVEN2_CLASSPATH_CONTAINER", там нет списка баннеров. Pom.xml в Eclipse показывает ошибку в первой строке для отсутствующих баночек, но я могу построить из командной строки!

Любая идея? Мне нужна помощь! Я попытаюсь перейти к NetBeans, если я не решу эту проблему.

Спасибо.

4b9b3361

Ответ 1

Наконец-то я нашел обходное решение. Это, безусловно, ошибка в m2eclipse, однако проблема исчезла, когда я добавил quartz-1.6.0.pom рядом с quartz-1.6.0.jar в .m2\repository\opensymphony\quartz\1.6.0\
Pom нет в http://repo1.maven.org/maven2/opensymphony/quartz/1.6.0/, но вы можете извлечь его из quartz-1.6.0-bundle.jar linket на http://jira.opensymphony.com/browse/QUARTZ-482
Это странное решение, но оно также работало на компьютерах моих коллег.

Ответ 2

Вам может потребоваться указать Eclipse для принудительного обновления:

Project -> Maven -> Update Maven Project

а затем убедитесь, что вы выбрали:

Force Updates of Snapshots/Releases

это происходит, когда mvn устанавливает копии некоторых файлов jar в репозиторий Maven, и Eclipse проверил это репо, прежде чем этот банкомат был скопирован там.

Ответ 3

Если управление зависимостями включено, когда вышеуказанные проблемы возникают в Eclipse, вы можете Project > Maven > Disable Dependency Management and then \Project > Maven > Enable Dependency Management. Обычно это устраняет любые ошибки зависимостей в pom.xml.

Также сделайте так, как @Nishant указал в своем ответе выше после вышеуказанных шагов для завершения зависимостей проектов.

Ответ 4

right click on your project > Maven > Update Dependencies

то

right click on your project > Maven > Update Project configuration

Предполагая, что плагин M2Eclipse установлен правильно, это должно решить проблему. Кроме того, проверьте, есть ли опция right click project > Maven > Enable dependency Management выберите это.

Ответ 5

Используя Eclipse Kepler, удаление и повторное добавление свойства maven фиксировали ту же проблему, что и я. Фактически этот процесс изменил файл .settings/org.eclipse.m2e.core.prefs, изменив строку

resolveWorkspaceProjects=false

to

resolveWorkspaceProjects=true

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

Ответ 6

Добавление моего 2c для будущих гуглеров:

Всякий раз, когда появляется эта проблема, я удаляю соответствующую папку из репозитория m2 (на mac it on ~/.m2/repository) и снова создаю из eclipse с помощью clean install.

Работает каждый раз.

Ответ 7

Закройте IDE eclipse и откройте его снова, эта проблема должна быть исправлена.

Ответ 8

Просто добавьте еще одно возможное разрешение, если у вас есть многопроектная сборка с взаимозависимостями, если у вас есть репозиторий, определенный в дочернем проекте pom, для разрешения конкретной зависимости, от которой зависит только этот проект, и полагается на partent project для других резолюций он не видит эти зависимости в дочернем проекте (хотя он работает из командной строки).

Переместите определение репо родительскому pom.

Ответ 9

Отсутствие банок в пути сборки предполагает, что вы не включили зависимости Maven. Щелкните правой кнопкой мыши проект, выберите Maven, выберите "Enable Maven Dependency Management". Это позволяет M2Eclipse ссылаться на ваш POM.

Ответ 10

Ни один из других предложений не работал, но для меня работали следующие шаги (SpringSource Tool Suite 2.6.1):

  • Резервное копирование содержимого локального репозитория Maven
  • Удалить репозиторий
  • Проект > Maven > Зависимости обновлений
  • Заменить все, что недоступно в публичном репозитории из резервной копии

Ответ 11

Если отключение и включение управления зависимостями проекта не помогает (обычно это помогает), вы можете изменить файл .classpath в своем проекте и добавить строку:

<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER"/>

После добавления перезапуска eclipse следует добавить.

Ответ 12

У меня была такая же проблема со мной. На CLI clean install, затем на eclipse удалите зависимость, вставьте ее еще раз и это сделало трюк.

Ответ 13

Удалите все артефакты, кроме jar в локальном репозитории maven