Nexus登台Maven插件在一个复杂的Maven项目上



我试图通过将它们部署到oss.sonatype.org,然后将其释放到Maven Central中。

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

在构建POM中,我设置了Nexus登台插件:

<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>

当我构建时会发生什么,是所有子模块都构建并在登台库中上传到Nexus(例如#4005)。然后,在最后,上面的插件打开了一个新的存储库(例如#4006),将构建POM上传到它,然后将其关闭。这意味着我的构建POM被释放,但没有任何子模块。

是否有某种方法可以明确控制此插件的生命周期?我想在构建开始时打开新存储库,将所有子模块上传到它,然后关闭并发布。

如果您构建POM不是父,则不同的多模块项目也不具有分期插件的配置。那么它们只是通过部署插件部署吗?那将是一种不起作用的混合用例。

您必须配置您的Maven项目,因此它们都在一个反应堆中运行,并且都使用登台插件部署。

我唯一能想到的其他选择是将所有多模块儿童作为正常部署的完整构建中的完整构建到一个或多个登台存储库中,然后随后将它们与分期插件的遥控目标一起释放。这可能需要一些脚本或至少测试所有事物的顺序。

最新更新