POM не опубликован для подмодуля

В своем многомодульном проекте maven я заметил, что pom-файлы дочерних модулей не развертываются в Artifactory. Это вызывает ошибки в зависимых проектах, которые зависят от информации о зависимостях в POM дочерних модулей, что приводит к ошибкам в сборке Jenkins, например: The POM for com.myorg.services:mydomain-model:jar:1.6.1-SNAPSHOT is missing, no dependency information available с последующими ошибками компиляции, поскольку эти транзитивные зависимости не были загружены.

Больше информации:

Зависимый проект, приложение Spring Boot, содержит следующую зависимость:

      <dependency>
  <groupId>com.myorg.services</groupId>
  <artifactId>mydomain-model</artifactId>
  <version>1.6.1-SNAPSHOT</version>
</dependency>

Между тем целевой проект структурирован следующим образом, причем родительский POM:

      <project>
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.myorg.services</groupId>
    <artifactId>mydomain</artifactId>
    <version>1.14.0-SNAPSHOT</version>
    <packaging>pom</packaging>

    <name>mydomain</name>
    <description>mydomain</description>

    <parent>
        <groupId>com.myorg</groupId>
        <artifactId>org-parent</artifactId>
        <version>1.2.3</version>
    </parent>

    <modules>
        <module>mydomain-model</module>     
    </modules>
    (...)
</project>

И дочерний ПОМ:

      <project>
    <modelVersion>4.0.0</modelVersion>

    <parent>
        <groupId>com.myorg.services</groupId>
        <artifactId>mydomain</artifactId>
        <version>1.14.0-SNAPSHOT</version>
    </parent>

    <groupId>com.myorg.services</groupId>
    <artifactId>mydomain-model</artifactId>
    <version>1.6.1-SNAPSHOT</version>
    <packaging>jar</packaging>

    <name>mydomain-model</name>
    <description>My Domain Model</description>
    (...)
</project>

Это журналы, показывающие развертывание:

      [pool-19-thread-2] INFO org.jfrog.build.extractor.maven.BuildInfoClientBuilder - [pool-19-thread-2] Deploying artifact: https://artifactory.mycompany.com/artifactory/libs-snapshot-local/com/myorg/services/mydomain-model/1.6.1-SNAPSHOT/mydomain-model-1.6.1-SNAPSHOT.jar
[pool-19-thread-1] INFO org.jfrog.build.extractor.maven.BuildInfoClientBuilder - [pool-19-thread-1] Deploying artifact: https://artifactory.mycompany.com/artifactory/libs-snapshot-local/com/myorg/services/mydomain/1.14.0-SNAPSHOT/mydomain-1.14.0-SNAPSHOT.pom
[main] INFO org.jfrog.build.extractor.maven.BuildDeploymentHelper - Artifactory Build Info Recorder: publish build info set to false, build info will not be published...

Это журналы, показывающие отсутствующий POM, приводящий к ошибкам компиляции для зависимого проекта:

      [main] INFO org.apache.maven.cli.transfer.Slf4jMavenTransferListener - Downloading: https://artifactory.mycompany.com/artifactory/libs-snapshot/com/myorg/services/mydomain-model/1.6.1-SNAPSHOT/mydomain-model-1.6.1-SNAPSHOT.pom
[main] WARN org.codehaus.plexus.PlexusContainer - The POM for com.myorg.services:mydomain-model:jar:1.6.1-SNAPSHOT is missing, no dependency information available

Я проверил artifactory, и файл POM был доступен только для родительского модуля, но не для дочернего модуля, который предоставил только один файл Jar. Я надеялся, что POM дочернего модуля будет развернут в artifactory, чтобы избежать этих ошибок / предупреждений. Это возможно?

1 ответ

Решено переключением моих целей сборки maven с clean verify к clean install. По-видимому, jfrog достаточно умен, чтобы создать и развернуть зависимость подмодуля через maven-jar-plugin (вызывается через verify этап жизненного цикла), но он должен maven-install-plugin (через install phase) для обнаружения и развертывания в артефакте дополнительного артефакта, а именно pom.xml.

Другие вопросы по тегам