微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

当工件具有父 pom 时,如何将其正确部署到 nexus?

如何解决当工件具有父 pom 时,如何将其正确部署到 nexus?

我在将我的工件部署到 nexus 时遇到问题。我正在使用 sonatype 的 maven 和 nexus-staging-maven-plugin。我的项目结构是: 父 A 有 2 个子模块 B 和 C。 在 B 的 pom.xml 中,我声明了如下插件(当然还有存储库等):

   <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 时,该项目试图在关系 A(B 的父 pom)中找到。我也应该将父 pom.xml 部署到我的 nexus 吗?我应该如何在 B pom.xml 中配置我的插件以正确执行它?

解决方法

您还必须始终部署所有父 POM,因为没有父 POM,Maven 无法读取 POM。

因此,在多模块项目中,您应该将包括父模块在内的所有模块部署到同一位置。

,

我已经解决了我的问题。 答案是肯定的——如果你想在某个地方使用子模块作为依赖,你也需要在存储库中拥有它的父 pom。 我通过从 sonatype 添加到我的父 pom 暂存插件来解决问题,以便也可以将父 pom 部署到 nexus。比构建成功,现在我可以使用我的子工件(在我的问题中命名为 B)作为另一个项目的依赖项。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。