m2eclipse говорит "Отсутствует артефакт", но я могу построить из cmdline! - PullRequest
23 голосов
/ 31 марта 2011

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

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

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

Отсутствует артефакт: регистрация общего ресурса: регистрация общего ресурса: jar: 1.0.4: компиляция

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

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

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

Спасибо.

Ответы [ 13 ]

12 голосов
/ 03 декабря 2014

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

Project -> Maven -> Update Maven Project

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

Force Updates of Snapshots/Releases

это происходит, когда mvn install копирует некоторые файлы JAR вРепозиторий Maven и Eclipse проверили этот репозиторий ДО того, как этот jar был скопирован туда.

7 голосов
/ 13 апреля 2011

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

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

5 голосов
/ 31 марта 2011

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, выберите это.

2 голосов
/ 03 апреля 2014

Добавление моего 2c для будущих пользователей Google:

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

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

2 голосов
/ 14 января 2014

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

resolveWorkspaceProjects=false

на

resolveWorkspaceProjects=true

Таким образом, вы можете сделать этоизменить вручную, если нужно.

1 голос
/ 17 августа 2012

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

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

1 голос
/ 29 июля 2011

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

0 голосов
/ 02 апреля 2017

Удалите все артефакты, кроме банки в локальном хранилище maven

0 голосов
/ 23 июня 2016

У меня была такая же проблема со мной. В чистой установке CLI, затем в eclipse удалите зависимость, вставьте ее снова, и это помогло.

0 голосов
/ 18 февраля 2012

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

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

После добавления затмений необходимо перезапустить зависимости.

...