如何将 Maven Release Plugin 与 Nexus Staging Plugin 相结合?

How to combine the Maven Release Plugin with Nexus Staging Plugin?

我正在向 Maven Central 发布一个开源项目,我想将 Maven Release PluginNexus Staging Plugin,但不知道如何。

Maven 发布插件执行我需要的一切:

所有这些自动化意味着我可以使用单个命令行执行发布。太棒了

这里唯一需要注意的是上面的部署任务 只是将 JAR 交付 到 Maven Central Repository,而不是发布它们。我还需要登录Maven Central网站,找到release,点击"Close"...等几分钟...还没有准备好...等几分钟...再检查……哦,准备好了……终于点击"Release"。我不喜欢这种手动的、容易出错的任务。

另一方面,Nexus Staging 插件会自动执行 "Close" + "Release"。但是,它不会执行任何其他操作,例如上述步骤列表。

有什么方法可以将上面的 "deploy" 部分替换为 "Nexus Staging Plugin" 吗?

我真傻。令人难以置信的是,当您完成提出问题的过程时,您离答案有多近。

解决方案非常简单。只需将 Nexus Staging 插件添加到 pom.xml 即可自动替换默认的 "deploy" 步骤。

这是我的 pom.xml Nexus 暂存插件部分:

  <!-- Nexus Staging -->

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

如您所见,没什么特别的。有了这个,调用 Maven Release Plugin 会自动使用 Nexus Staging Plugin,而不是默认部署。

$ mvn -B release:prepare && mvn release:perform

全程自动化:Git一次发布+Maven Central发布

干杯!