#maven #pom.xml #nexus #sonatype
#maven #pom.xml #nexus #sonatype
Вопрос:
У меня проблема с развертыванием моего артефакта в nexus. Я использую maven и nexus-staging-maven-plugin от sonatype. Структура моего проекта: родительский A с 2 дочерними модулями B и C. В pom.xml из B я объявил плагин, как показано ниже (и, конечно, репозиторий и т.д.):
<plugin>
<groupId>org.sonatype.plugins</groupId>
<artifactId>nexus-staging-maven-plugin</artifactId>
<version>1.5.1</version>
<executions>
<execution>
<id>default-deploy</id>
<phase>deploy</phase>
<goals>
<goal>deploy</goal>
</goals>
</execution>
</executions>
<configuration>
<nexusUrl>http://nexus.intranet:8081/repository/myrepo/</nexusUrl>
<serverId>nexus</serverId>
<skipStaging>true</skipStaging>
</configuration>
</plugin>
Мой артефакт правильно развертывается в nexus в папке com / myorg / B / 1.1.5/, и там присутствует jar и B pom.xml и файлы sha.
Проблема в том, что когда я добавляю в другой проект зависимость B, чем этот проект пытается найти в nexus A (родительский pom из B). Должен ли я развернуть родительский pom.xml и к моему нексусу тоже? Как я должен настроить свой плагин в B pom.xml чтобы сделать это правильно?
Комментарии:
1. Пожалуйста, покажите полные pom и что такое «родительский pom»? Является ли это частью многомодульной сборки или это отдельный проект?
2. да, я писал о многомодульном проекте. В любом случае я нашел решение.
Ответ №1:
Вы также всегда должны развертывать все родительские POM, потому что без родительского POM POM не могут быть прочитаны Maven.
Итак, в многомодульном проекте вы должны развернуть все модули, включая родительский, в одном и том же месте.
Ответ №2:
Я уже решил свою проблему. Ответ да — если вы хотите использовать дочерний модуль как зависимость где-то, вам также нужно иметь родительский pom в репозитории. Я решил проблему, добавив в свой родительский промежуточный плагин pom из sonatype, чтобы сделать возможным развертывание родительского pom и в nexus. Сборка прошла успешно, и теперь я могу использовать свой дочерний артефакт (с именем B в моем вопросе) в качестве зависимости в другом проекте.