Как правильно развернуть артефакт в nexus, когда у него есть родительский pom?

#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 в моем вопросе) в качестве зависимости в другом проекте.