Реактор Maven и площадка
У меня есть многомодульный проект с родителем pom.xml
и несколько модулей, где некоторые из модулей зависят друг от друга. В каталоге проекта я могу позвонить
mvn test
проводить юнит-тесты в каждом модуле. Здесь нет проблем. Но если я позвоню
mvn site
один из модулей отчетов
[ERROR] Failed to execute goal on project myModule_C: Could not resolve dependencies
for project org.myModule_C:jar:0.0.1-SNAPSHOT: The following artifacts could not be
resolved: org.myModule_A:jar:0.0.1-SNAPSHOT, org.myModule_B:jar:0.0.1-SNAPSHOT: Failure
to find org.myModule_A:jar:0.0.1-SNAPSHOT in http://artifactory-server:8081/artifactory/repo
was cached in the local repository, resolution will not be reattempted until the update
interval of server has elapsed or updates are forced -> [Help 1]
Я думаю, что это не должно происходить, так как эти зависимости обнаруживаются во время "mvn test". Кроме того, они находятся не на сервере артефактов, а являются частью родительского проекта. Цель, которая упоминается в ОШИБКЕ, является целью site
, Почему mvn test
преуспеть (относительно найденных зависимостей) и mvn site
не? Нужно ли строить сайт особым образом - ведь это сборка реактора?
1 ответ
Вы должны выполнить mvn install
как минимум один раз. Пожалуйста, смотрите дополнительную информацию в Maven Build Life Cycle и Maven за 5 минут.
Вот обзор
Maven Фазы
Хотя этот список и не является исчерпывающим, это наиболее распространенные этапы жизненного цикла по умолчанию.
validate: подтвердить правильность проекта и получить всю необходимую информацию
компилировать: компилировать исходный код проекта
test: протестируйте скомпилированный исходный код, используя подходящую среду модульного тестирования. Эти тесты не должны требовать, чтобы код был упакован или развернут
package: возьмите скомпилированный код и упакуйте его в распространяемый формат, такой как JAR.
интеграционный тест: при необходимости обработайте и разверните пакет в среде, в которой могут выполняться интеграционные тесты
проверить: выполнить любые проверки, чтобы убедиться, что пакет действителен и соответствует критериям качества
install: установить пакет в локальный репозиторий, для локального использования в качестве зависимости в других проектах
Развертывание: выполняется в среде интеграции или выпуска, копирует окончательный пакет в удаленный репозиторий для совместного использования с другими разработчиками и проектами.
Помимо списка по умолчанию, приведенного выше, есть еще два других жизненных цикла Maven. Они есть
clean: очищает артефакты, созданные в предыдущих сборках
site: генерирует документацию по сайту для этого проекта
Я надеюсь, что это может помочь.