Nexus在复杂的Maven项目上升级Maven插件?

时间:2016-06-14 10:04:48

标签: maven nexus staging

我试图将几个maven项目一起发布到oss.sonatype.org,然后将它们发布到Maven central。

我有一个构建pom,我用它来一起构建多个多模块项目。构建pom不是父pom,每个单独的多模块项目都有自己的父pom。

在构建pom中,我设置了nexus staging插件:

<plugin>
    <groupId>org.sonatype.plugins</groupId>
    <artifactId>nexus-staging-maven-plugin</artifactId>
    <version>1.6.3</version>
    <extensions>true</extensions>
    <configuration>
      <serverId>ossrh</serverId>
      <nexusUrl>https://oss.sonatype.org/</nexusUrl>
      <autoReleaseAfterClose>true</autoReleaseAfterClose>
    </configuration>
</plugin>

构建时会发生的是,所有子模块都是在staging repo中构建并上传到nexus的(比如说#4005)。然后在最后,上面的插件打开一个新的存储库(比如说#4006),只将构建pom上传到它,然后关闭它。这意味着我的构建pom被释放,但不是任何子模块。

有没有办法明确控制这个插件的生命周期?我想在构建开始时打开新的存储库,将所有子模块上传到它,然后关闭并释放它。

1 个答案:

答案 0 :(得分:0)

如果您构建pom不是父级,则不同的多模块项目也不具有登台插件的配置。那么它们是否只是通过部署插件进行部署?这将是一个不起作用的混合用例。

您必须配置Maven项目,以便它们都在一个反应​​堆中运行,并且全部使用暂存插件进行部署。

我能想到的唯一另一个选择是将所有多模块子项的完整构建作为正常部署运行到一个或多个分段存储库中,然后随后与remote control goals分段一起发布它们插入。这可能需要一些脚本或至少一些测试一切的顺序如何运作。