m2eclipse не находит зависимости maven, артефакты не найдены

Я использую m2eclipse в качестве плагина maven 2 для eclipse. Я новичок в maven, поэтому моя ошибка может быть простой, хотя поиск не дал для меня никаких решений. Я могу запустить maven из командной строки, и он успешно построится. Однако, если я импортирую как существующий проект maven или использую mvn eclipse: eclipse, а затем импортирую, я получаю артефакты, не найденные в моем файле POM, в результате чего зависимости maven не загружаются вообще.

Что странно, так это то, что у меня есть 2 проекта, оба являются дочерними для родительского проекта, упакованного с помпой. Один ребенок загружает все мои зависимости maven, в то время как другой не может их найти и говорит, что в моем файле pom отсутствуют артефакты. Опять же, я могу легко установить и упаковать их все из командной строки.

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

Есть какие нибудь идеи как это починить?

Обновлять

Структура каталогов, расположение файлов pom:

--main
  --pom.xml   (is a pom package that is the parent to two other projects)
  --ProjectA
    --pom.xml
  --ProjectB
    --pom.xml

Main - родительский проект для ProjectA и ProjectB. ProjectB имеет ProjectA в качестве зависимости. По-видимому, m2eclipse не рад этой зависимости. Как только я удалю зависимость ProjectA от файла pom ProjectB, все зависимости maven будут найдены eclipse.

- com.company.myproj:app:6.6.0:jar Missing: ---------- 1) com.company.myproj:main:pom:${myproj.version} ---------- 1 required artifact is missing. for artifact: com.company.myproj:main:pom:$
 {myproj.version} from the specified remote repositories: apache-incubating (http://people.apache.org/repo/m2-incubating-repository/, releases=true, snapshots=true), central (http://
 repo1.maven.org/maven2, releases=true, snapshots=false)

Однако мне все еще нужно, чтобы ProjectB имел эту зависимость для ProjectA. Сообщение об ошибке похоже на то, что m2eclipse ищет ProjectA в удаленном репо. Проект A должен находиться только в каталоге .m2, но я не уверен, как указать m2eclipse, чтобы он туда смотрел.

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


person vagabond    schedule 06.03.2010    source источник
comment
Пожалуйста, предоставьте более подробную информацию по вашему вопросу: импортируете ли вы три проекта (родительский и два дочерних), какие зависимости вызывают проблемы, есть ли в них что-то конкретное, можете ли вы показать свои POM (анонимно их, если требуется)?   -  person Pascal Thivent    schedule 07.03.2010


Ответы (7)


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

РЕШЕНИЕ. В проекте, который строится неправильно, щелкните проект правой кнопкой мыши и выберите «Свойства», а затем «Maven». Снимите флажок «Разрешить зависимости из проектов рабочей области», нажмите «Применить», а затем «ОК». Снова щелкните правой кнопкой мыши свой проект и выполните Maven-> Обновить снимки (или Обновить зависимости), и ваши ошибки исчезнут при перестройке проекта (автоматически, если у вас включена автоматическая сборка).

person IceBox13    schedule 02.08.2011

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

Если вы откроете настройки Maven (Окно -> Настройки -> Maven -> Установки, вы можете добавить вашу установку Maven, выбрав Добавить ... и перейдя в каталог M2_HOME.

Снимок экрана настроек
(источник: sonatype.com)

Дополнительные сведения см. В книге m2eclipse.

person Rich Seller    schedule 06.03.2010
comment
Привет, Рич! Я не уверен, что понимаю вашу точку зрения. По умолчанию встроенный maven использует то же расположение локального репозитория по умолчанию (~/.m2/repository), что и внешняя установка maven. Кроме того, встроенная версия всегда используется для разрешения зависимостей (как указано в примечании), поэтому добавление внешней установки maven ничего здесь не изменит, ИМХО. - person Pascal Thivent; 07.03.2010
comment
@Pascal Я вижу ту же проблему на работе, когда стандарты настроек Maven диктуют другой локальный репозиторий, а настройки прокси необходимы для внешних репозиториев. Я предполагаю, что OP имеет аналогичную ситуацию, и в этом случае использование того же settings.xml разрешит ее. - person Rich Seller; 07.03.2010
comment
Спасибо за этот совет. Я не знал, что вы можете указать это ... хотя я все еще испытываю свою проблему, это помогло мне лучше понять, как использовать m2eclipse и maven. - person vagabond; 08.03.2010
comment
такая же проблема здесь, по некоторым причинам плагин не будет искать в локальном репо и попытается получить его с удаленного - person Olivier Refalo; 23.06.2011
comment
Большое спасибо, это устранило мою проблему после того, как я долго искал. - person Michael Dillon; 22.09.2011
comment
m2eclipse URL книги не работает; новый: sonatype.com/books/m2eclipse-book/reference - person Sanjay T. Sharma; 14.06.2012

Для меня maven загружал зависимость, но не смог добавить ее в путь к классам. Я видел мой .classpath проекта, в нем не было записи, связанной с maven. Когда я добавил

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

проблема была решена для меня.

person Harshal Waghmare    schedule 04.09.2012
comment
+1 Отличный ответ, но все же интересно, что можно сделать в пользовательском интерфейсе Eclipse, чтобы сделать то же самое, и почему Eclipse не делает этого автоматически. - person Boris Treukhov; 14.03.2013

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

person HP24    schedule 23.10.2012

Хорошо, я починил эту штуку. Пришлось сначала преобразовать проекты в Maven Projects, затем удалить их из рабочего пространства Eclipse, а затем повторно импортировать их.

person Steven L    schedule 01.08.2012
comment
Достаточно было просто конвертировать! - person Dehan; 23.10.2018

У меня были проблемы с использованием m2eclipse (т.е. он вообще не был установлен), но я разрабатываю проект, используя IAM - плагин maven для eclipse, поддерживаемый Eclipse Foundation (или размещенный или что-то в этом роде).

У меня иногда были проблемы, так как иногда возникала какая-то странная ошибка для проекта (он не мог что-то переместить), но простая команда (запуск из eclipse как задача или с консоли) + обновление (F5) решала все проблемы:

mvn clean

Однако обратите внимание, что я создал проект в eclipse. Однако я модифицировал pom.xml вручную.

person Maciej Piechotka    schedule 06.03.2010

Это может быть проблемой, если вы используете собственный файл «Settings.xml», в котором настроен другой <localRepository>.

Eclipse будет использовать установку MAVEN по умолчанию и будет использовать местоположение по умолчанию, в котором Пользователь будет искать локальный репозиторий Maven, который в системах Linux будет '/home/${USER}/.m2/'

Eclipse можно легко настроить для использования настроенного файла «Settings.xml», выполнив следующие действия: «Перейти к меню» -> «Окно» -> «Настройки» -> «Выбрать Maven» -> «Настройки пользователя».

  1. В разделе «Параметры пользователя» выберите настраиваемый файл «Параметры.xml» для параметра «Параметры пользователя», нажав кнопку «Обзор» и выбрав настраиваемый файл «Параметры.xml».
  2. Нажмите «Обновить настройки», если в текстовом поле «Локальный репозиторий» не отображается пользовательское местоположение из файла выше, просто введите местоположение и нажмите «Переиндексировать».
  3. Нажмите "ОК".

После этого вы можете перейти к выбору проекта в «Обозревателе проектов», щелкните правой кнопкой мыши, выберите «Maven»> «Обновить проект». Убедитесь, что ваш проект выбран (отмечен галочкой) в окне, и нажмите «ОК».

Это должно помочь решить проблему при использовании настраиваемого файла «Settings.xml» для Maven.

Надеюсь, поможет.

person Dinesh Kumar    schedule 22.07.2016