How to Release to Maven Central, in One Click

The following text is a partial translation of the original English article, performed by ChatGPT (gpt-3.5-turbo) and this Jekyll plugin:

当我发布一个新版本的Java开源库jcabi-aspects到Maven Central时,只需要花费我30秒的时间。甚至可能更少。最近,我发布了0.17.2版本。您可以在GitHub问题#80中看到整个过程:

如您所见,我给Rultor发送了一个命令,它就将新版本发布到了Maven Central。我没有做其他任何事情。

现在让我们看看您如何做同样的事情。您如何配置您的项目,使其发布新版本到Maven Central只需要花费几秒钟的时间。

顺便说一下,我假设您将项目托管在GitHub上。如果不是这样,整个教程将无法使用。如果您还没有在GitHub上托管项目,我强烈建议您迁移到那里。

请确保您的 pom.xml 包含了 Sonatype 所需的所有元素,这些元素在 Central Sync Requirements 中有详细说明。我们将部署到 Sonatype,他们将会将所有的 JAR(以及其他)构件同步到 Maven Central。

Sonatype JIRA创建一个账号并提出一个工单,请求批准您的groupId。这个OSSRH Guide会更详细地解释这个步骤。

根据这篇使用PGP签名的文章,创建并分发一个GPG密钥。

完成这一步骤后,您应该会得到两个文件:pubring.gpgsecring.gpg

在前一步创建的两个.gpg文件旁边创建settings.xml文件。

在这个示例中,9A105525 是您的公钥的ID,而 my-secret 是您在生成密钥时使用的密码短语。

现在,使用rultor remote加密这三个文件。

请使用您的GitHub项目名称,而不是me/test

您将获得三个新文件:pubring.gpg.ascsecring.gpg.ascsettings.xml.asc。将它们添加到您的项目的根目录中,提交并推送。这些文件包含您的秘密信息,但只有Rultor服务器可以解密。

我建议您在项目中使用jcabi-parent作为父POM。这样可以避免许多进一步的步骤。如果您正在使用jcabi-parent,请跳过此步骤。

然而,如果您没有使用jcabi-parent,您应该将以下两个仓库添加到您的pom.xml文件中:

Configure GPG Plugin

再次,我建议使用jcabi-parent,它可以自动配置此插件。如果您正在使用它,请跳过此步骤。

否则,请将此插件添加到您的pom.xml文件中。

Configure Versions Plugin

再次推荐使用http://parent.jcabi.com。它可以自动配置所有所需的插件。如果你正在使用它,请跳过此步骤。

否则,请将此插件添加到你的pom.xml文件中:

Configure Sonatype Plugin

是的,你说得对,http://parent.jcabi.com 在这里也可以帮到你。如果你已经在使用它,也可以跳过这一步。

否则,请将以下四个插件添加到你的 pom.xml 文件中:

Create Rultor Configuration

在您的项目的根目录中创建一个.rultor.yml文件(参考页面详细解释了此格式)。

你可以将你的文件与jcabi-aspects的实时Rultor配置进行比较(链接)。

现在是时候看看它是如何工作的了。在GitHub问题跟踪器中创建一个新的票据,并将类似以下内容的内容发布到其中(阅读有关Rultor命令的更多信息):

您将在几秒钟内收到回复。其余的工作将由Rultor完成。

顺便说一下,如果有什么不按照我所解释的方式工作的问题,请毫不犹豫地提交一个工单到Rultor问题跟踪器。我会尽力帮助你。

是的,我忘了提一下,Rultor还有两个重要的功能。首先,它会创建一个带有适当描述的GitHub发布。其次,它会发布一条推文关于这个发布,你可以转发它,向你的关注者宣布这个消息。这两个功能对我来说非常方便。例如:

Translated by ChatGPT gpt-3.5-turbo/42 on 2023-11-17 at 14:45

sixnines availability badge   GitHub stars