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

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

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

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

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

Любые идеи о том, как исправить это?

Update

Структура каталогов, расположение файлов 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 как зависимость. По-видимому, мэйнклипс недоволен этой зависимостью. Как только я удаляю зависимость 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, но я не уверен, как сказать, что mlclllsese посмотреть там.

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

4b9b3361

Ответ 1

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

РЕШЕНИЕ. В проекте, который не строится правильно, щелкните правой кнопкой мыши проект и выберите "Свойства", а затем "Мейвен". Снимите флажок "Разрешить зависимости из проектов Workspace", нажмите "Применить", а затем "ОК". Щелкните правой кнопкой мыши еще раз в своем проекте и сделайте Maven- > Update Snapshots (или Update Dependencies), и ваши ошибки должны исчезнуть при перестройке вашего проекта (автоматически, если включена автоматическая сборка).

Ответ 2

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

Если вы откроете настройки Maven (" Окно" → " Установки"Maven → " Установки"), вы можете добавить свою установку Maven, выбрав " Добавить..." и перейдя в каталог M2_HOME.

Preferences screenshot
(источник: sonatype.com)

Для более подробной информации см. Книгу m2eclipse

Ответ 3

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

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

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

Ответ 4

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

Ответ 5

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

Ответ 6

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

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

mvn clean

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

Ответ 7

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

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

Eclipse можно легко настроить для использования настраиваемого "Settings.xml", выполнив следующие действия: Goto → Окно → Настройки → Выберите "Maven" → Выберите "Настройки пользователя"

  • В разделе "Пользовательские настройки" выберите пользовательский файл "Settings.xml" для "Пользовательских настроек", нажав "Обзор" и выбрав индивидуальный "Настройки .xml".
  • Нажмите "Обновить настройки", если в текстовом поле "Локальный репозиторий" не отображается пользовательское местоположение из вышеприведенного файла, просто введите его и нажмите "Reindex".
  • Нажмите "ОК"

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

Это должно помочь решить проблему, если используется пользовательский "Settings.xml" для Maven.

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