在我以前的文章中 ,我描述了如何在Amazon S3中设置私有Maven存储库并通过Rultor进行部署。 如果您熟悉管理Amazon Web Services(AWS), S3和AWS Identity and Access Management(IAM)的话,这是一个很好的解决方案。 但是,如果您不习惯管理一个AWS账户和所有相关权限,则可能希望将Apache Maven Artifacts存储在某个基于云的存储库管理器中。 这是让Rultor将Maven依赖项部署到CloudRepo的方法 。 我与创始人Chris Shellenbarger一起写了这篇博客。
存储库管理器和S3都将允许您的构建工具在远程存储库或存储桶中存储和检索软件库。 但是,存储库管理器会处理许多您需要使用S3解决方案进行管理的工作。
尽管AWS相当强大,并且可以配置为执行存储库管理器可以做的所有事情,但是当您选择完全托管的解决方案时,有些用例可以直接使用,例如:用户/组管理,Maven特定视图,Webhooks,通知,访问和审核日志,完全托管的安全性等。简单地说,它们不仅是JAR文件的存储,还包括云中的Maven存储库。
假设您已经使用CloudRepo创建了一个帐户并设置了用户和maven存储库 ,则在客户端上部署到CloudRepo需要执行两个步骤:1)使用凭据配置settings.xml
文件,以及2)将存储库添加到pom.xml
文件的<distributionManagement>
部分。
settings.xml
文件的默认位置在~/.m2
目录中。 编辑此文件,并确保您具有一个<server>
条目,如下所示:
<settings> <servers> <server> <id>io.cloudrepo</id> <username>yegor256 @gmail .com</username> <password>my-secret</password> </server> </servers> </settings>
通过声明server
并指定id
,您可以在Maven POM文件中引用该id
。 当Maven尝试针对服务器进行身份验证时,它将在settings.xml
文件中寻找相应的密钥。
如果您担心将密码以明文形式存储在文件系统中,请检查Maven 建议如何解决该问题。
现在已经设置了凭据,您必须将pom.xml
指向CloudRepo存储库。 将新的<repository>
元素添加到pom.xml
的<distributionManagement>
(要上传)元素和<repositories>
(要下载它们):
<project> [...] <repositories> <repository> <id>io.cloudrepo</id> <url>https: //[your-org-name].mycloudrepo.io/repositories/[your-repository-name]</url> </repository> </repositories> [...] <distributionManagement> <repository> <id>io.cloudrepo</id> <name>CloudRepo Maven Repository</name> <url>https: //[your-org-name].mycloudrepo.io/repositories/[your-repository-name]</url> </repository> </distributionManagement> </project>
在本地环境中运行了构建后,您需要使用Rultor将其部署到生产中。 首先,您需要将凭据存储在Git中,以便Rultor可以在构建和部署时访问它们。 但是, 绝对不要在版本控制中以明文形式存储您的凭据(用my/project
替换GitHub项目的名称)是非常重要的:
$ gem install rultor $ rultor encrypt -p my/project settings.xml
这将创建一个名为settings.xml.asc
设置文件的加密版本。 将此文件添加到项目的根目录,然后提交并推送。 很安全 只有Rultor拥有解密此文件的密钥,因此即使您的源代码暴露给他人,您的凭据也将保持安全。
要启用Rultor,请将.rultor.yml
文件添加到项目的根目录中,其中包含以下内容:
decrypt: settings.xml: "repo/settings.xml.asc" deploy: script: | mvn clean deploy --settings ../settings.xml
有关.rultor.yml
文件的更多信息,请检查“ Rultor参考页” 。
现在,所有内容都已配置完毕,您应该能够通过执行@rultor deploy
命令使用Rultor部署到CloudRepo。 等待响应,Rultor会处理所有剩余的工作。
而已!
翻译自: https://www.javacodegeeks.com/2019/02/deploy-maven-artifacts-cloudrepo-rultor.html