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 загружает проекты и зависимости просто отлично.
Ответы
Ответ 1
У меня была эта проблема для зависимостей, созданных в других проектах. Загруженные зависимости thirdparty проявились в пути сборки, но не в библиотеке, которую я создал.
РЕШЕНИЕ. В проекте, который не строится правильно, щелкните правой кнопкой мыши проект и выберите "Свойства", а затем "Мейвен". Снимите флажок "Разрешить зависимости из проектов Workspace", нажмите "Применить", а затем "ОК". Щелкните правой кнопкой мыши еще раз в своем проекте и сделайте Maven- > Update Snapshots (или Update Dependencies), и ваши ошибки должны исчезнуть при перестройке вашего проекта (автоматически, если включена автоматическая сборка).
Ответ 2
Похоже, ваша установка m2eclipse использует встроенный Maven, который имеет свой собственный репозиторий (находится под домашним каталогом пользователя) и настройки.
Если вы откроете настройки Maven (" Окно" → " Установки" → Maven → " Установки"), вы можете добавить свою установку Maven, выбрав " Добавить..." и перейдя в каталог M2_HOME.
(источник: 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.
Надеюсь, что это поможет.