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

У меня проблема с развертыванием моего артефакта в нексусе. Я использую maven и nexus-staging-maven-plugin от sonatype. Моя структура проекта: родительский A с двумя дочерними модулями B и C. В pom.xml of 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>

Мой артефакт правильно развертывается на нексусе в папку com / myorg / B / 1.1.5 /, и есть jar и файлы B pom.xml и sha. Проблема в том, что когда я добавляю в другой проект зависимость B, которую этот проект пытается найти в нексусе A (родительский объект B). Должен ли я также развернуть родительский pom.xml на моем нексусе? Как мне настроить мой плагин в B pom.xml, чтобы он работал правильно?


person rbednarska    schedule 11.01.2021    source источник
comment
Пожалуйста, покажите полный помпон, а что такое родительский помпон? Это часть многомодульной сборки или отдельный проект?   -  person khmarbaise    schedule 11.01.2021
comment
да я писал про многомодульный проект. В любом случае я нашел решение.   -  person rbednarska    schedule 11.01.2021


Ответы (2)


Вы также должны всегда развертывать все родительские POM, потому что без родительского POM они не могут быть прочитаны Maven.

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

person J Fabian Meier    schedule 11.01.2021

Я уже решил свою проблему. Ответ - да - если вы хотите использовать дочерний модуль в качестве зависимости где-то, вам также нужно, чтобы родительский модуль был в репозитории. Я решил проблему, добавив к моему родительскому модулю pom staging из sonatype, чтобы сделать возможным развертывание родительского pom в nexus. Затем сборка прошла успешно, и теперь я могу использовать свой дочерний артефакт (названный B в моем вопросе) в качестве зависимости в другом проекте.

person rbednarska    schedule 11.01.2021