How to Deploy Maven Artifacts to CloudRepo via Rultor

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

在我的上一篇文章中,我描述了如何在亚马逊S3上设置一个私有的Maven仓库,并通过Rultor进行部署。如果你熟悉亚马逊网络服务(Amazon Web Services,AWS)、S3和AWS Identity and Access Management (IAM),那么这是一个很好的解决方案。然而,如果你不熟悉管理AWS账户和相关权限,你可能想将你的Apache Maven构件存储在一些基于云的仓库管理器中。以下是如何让Rultor将你的Maven依赖部署到CloudRepo的方法。我与他们的创始人Chris Shellenbarger一起撰写了这篇博文。

仓库管理器和S3都允许构建工具在远程仓库或存储桶中存储和检索软件库。然而,仓库管理器会处理许多你需要自己管理的工作,而S3解决方案则不会。

虽然AWS非常强大,可以配置成完成仓库管理器的所有功能,但选择一个完全托管的解决方案时,有些用例可以直接开箱即用,比如:用户/组管理、Maven特定视图、Webhooks、通知、访问和审计日志、完全托管的安全性等。简而言之,它们不仅仅是JAR文件的存储,而是云中的Maven仓库。

一个完全托管的云托管解决方案将需要您支付月度订阅费用。写这篇文章时,他们收取每月9美元及以上的费用。对于开源项目是免费的,但如果您可以使用Maven Central,我不知道为什么您会需要它们。好消息是,他们为我的读者提供了一个特别优惠:前90天免费使用,而标准优惠只有14天。当您创建账户时,只需给他们发送一封电子邮件,他们会为您处理(不要忘记提到我的名字,以获得折扣)。

假设您已创建了一个CloudRepo账户,并设置了用户和Maven仓库,在客户端部署到CloudRepo需要两个步骤:1) 使用凭据配置settings.xml文件,2) 将您的仓库添加到pom.xml文件的<distributionManagement>部分。

settings.xml文件的默认位置是在您的~/.m2目录下。编辑此文件,确保您有如下所示的<server>条目:

通过声明server并指定一个id,你可以在Maven POM文件中引用这个id。当Maven尝试对服务器进行身份验证时,它会在settings.xml文件中查找相应的密钥。

如果你担心在文件系统中以明文形式存储密码,请查看Maven如何建议解决这个问题。

现在,你已经设置好了凭据,你必须将你的pom.xml指向你的CloudRepo存储库。在pom.xml<distributionManagement>(用于上传)部分和<repositories>(用于下载)部分中添加一个新的<repository>元素。

一旦您在本地环境中构建成功,您需要使用Rultor将其部署到生产环境中。首先,您需要将您的凭据存储在Git中,以便Rultor可以在构建和部署时访问它们。然而,非常重要的是永远不要以明文形式将您的凭据存储在版本控制中(将您的GitHub项目名称替换为my/project)。

这将创建一个名为settings.xml.asc的加密版本的设置文件。将此文件添加到您的项目的根目录中,然后进行提交和推送。这是安全的。只有Rultor拥有解密此文件所需的密钥,因此即使您的源代码暴露给他人,您的凭据也将得到保护。

要启用Rultor,请将一个名为.rultor.yml的文件添加到您的项目的根目录中,并包含以下内容:

有关 .rultor.yml 文件的更多信息,请查看Rultor参考页面

现在一切都已配置好,您应该可以通过执行 @rultor deploy 命令来使用Rultor部署到CloudRepo。等待响应,Rultor将处理其余的所有事务。

Translated by ChatGPT gpt-3.5-turbo/42 on 2023-11-22 at 10:02

sixnines availability badge   GitHub stars