欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

使用Amazon s3托管您的Maven工件

发布时间:2023/12/3 60 豆豆
生活随笔 收集整理的这篇文章主要介绍了 使用Amazon s3托管您的Maven工件 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

如果您使用Amazon Web Services并将Java用于项目,则Amazon S3是托管团队工件的理想场所。

它很容易设置,而且很便宜。 如果您对它们的功能不特别感兴趣,那么它比设置现有存储库选项(jfrog,nexus,archiva等)要简单得多。

首先,您需要指定一个支持s3的Maven旅行车。 我们将使用s3储藏车 。

让我们开始创建一个Maven项目

mvn archetype:generate -DgroupId=com.test.apps -DartifactId=S3WaggonTest -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

我们将添加一个简单的服务。

package com.test.apps;public class HelloService {public String sayHello() {return "Hello";} }

然后,我们将添加Maven旅行车,该旅行车将上载并获取二进制文件到s3。

<build><extensions><extension><groupId>com.gkatzioura.maven.cloud</groupId><artifactId>s3-storage-wagon</artifactId><version>1.0</version></extension></extensions></build>

然后,我们将创建将托管我们的工件的s3存储桶。

aws s3 createbucket artifactbucket.

现在我们创建了存储桶。 然后我们将在我们的Maven项目中设置分发管理。

<distributionManagement><snapshotRepository><id>my-repo-bucket-snapshot</id><url>s3://my-test-repo/snapshot</url></snapshotRepository><repository><id>my-repo-bucket-release</id><url>s3://my-test-repo/release</url></repository></distributionManagement>

从Maven文档

正如repositories元素在POM中指定Maven可以下载远程工件以供当前项目使用的位置和方式的地方,而distributionManagement指定此项目在部署时将在何处(以及如何)到达远程存储库。 如果未定义snapshotRepository,则存储库元素将用于快照分发。

下一步是最关键的,这与向aws进行身份验证有关。
一种简单的方法是将aws cli配置为指向存储桶所在的区域,并具有对将托管二进制文件的s3存储桶具有读写访问权限的凭据。

aws configure AWS Access Key ID [None]: AKIAIOSFODNN7EXAMPLE AWS Secret Access Key [None]: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY Default region name [None]: us-west-2 Default output format [None]: json

另一种方式是使用maven方式,并在〜/ .m2 / settings.xml中指定我们的AWS凭证。

<servers><server><id>my-repo-bucket-snapshot</id><username>EXAMPLEEXAMPLEXAMPLE</username><password>eXampLEkeyEMI/K7EXAMP/bPxRfiCYEXAMPLEKEY</password></server><server><id>my-repo-bucket-release</id><username>EXAMPLEEXAMPLEXAMPLE</username><password>eXampLEkeyEMI/K7EXAMP/bPxRfiCYEXAMPLEKEY</password></server></servers>

请注意,必须为指定的每个存储库指定凭据。
同样,我们还没有结束,因为指定存储桶的区域至关重要。
为此,您可以将其设置为Amazon方式,从而在环境变量中指定它

AWS_DEFAULT_REGION=us-east-1

或者,您可以在执行deploy命令时将其作为属性传递。

-DAWS_DEFAULT_REGION=us-east-1

现在最容易部署的部分。

mvn deploy

现在,既然已经部署了工件,则可以通过指定存储库和旅行车在另一个存储库中使用它。

<repositories><repository><id>my-repo-bucket-snapshot</id><url>s3://my-test-repo/snapshot</url></repository><repository><id>my-repo-bucket-release</id><url>s3://my-test-repo/release</url></repository></repositories><build><extensions><extension><groupId>com.gkatzioura.maven.cloud</groupId><artifactId>s3-storage-wagon</artifactId><version>1.0</version></extension></extensions></build>

而已! 接下来,您知道您的工件将被maven通过s3下载,并用作新项目中的依赖项。

翻译自: https://www.javacodegeeks.com/2018/04/host-your-maven-artifacts-using-amazon-s3.html

总结

以上是生活随笔为你收集整理的使用Amazon s3托管您的Maven工件的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。