使用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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/346643.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux kill进程后黑屏,Linux中Kill进程的N种方法

常规篇&#xff1a;首先&#xff0c;用ps查看进程&#xff0c;方法如下&#xff1a;$ ps -ef……smx 1822 1 0 11:38 ? 00:00:49 gnome-terminalsmx 1823 1822 0 11:38 ? 00:00:00 gnome-pty-helpersmx 1824 1822 0 11:38 pts/0 …

ffmpeg宏块(Macroblock)概念

参考文章&#xff1a;音视频高手课系列5-h264编码基础(宏块原理) 文章目录 使用videoEye分析视频宏块示例FFmpeg宏块概念1. 宏块的定义2. 宏块的分类I-MacroblocksP-MacroblocksB-Macroblocks 3. 宏块的编码过程1. 运动估计2. 变换与量化3. 熵编码 4. 宏块的解码过程1. 熵解码2…

python123循环结构_来学Python啦,大话循环结构~

点击上方蓝字关注"程序员Bob"每日一句&#xff0c;送给最珍贵的你&#xff1a; 为学日益&#xff0c;为道日损&#xff0c;损之又损&#xff0c;以至于无为&#xff0c;无为而无不为。最近想研究爬虫了&#xff0c;准备拾起以前Python&#xff0c;继续学&#xff01;…

linux查看主机脚本,简单的bash脚本查看任意网段的在线主机

一前言最近看到许多同志在写ping某个地址段的bash脚本&#xff0c;我也心血来潮来了一发。 当然本人新手&#xff0c;大神勿喷。二准备工作linux系统的机器一台&#xff0c;当然虚拟机也可以&#xff0c;只要将网卡配置为桥接模式&#xff0c;可以连通其他局域网的主机即可。1…

python求一组数的最大值_python快速求一个数组的最大值/最小值及其索引

enumerate()函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列&#xff0c;同时列出数据和数据下标。 x [3, 2.2, 7.4, 6, 4] list(enumerate(x)) # 输出 [(0, 3), (1, 2.2), (2, 7.4), (3, 6), (4, 4)] operator.itemgetter()函数用于获取对象的哪些维…

linux远程调用的脚本在ssh时报错,linux:ssh远程调用tomcat脚本时候出错

执行 &dollar;Gulp 时发生了什么 —— 基于 Gulp 的前端集成解决方案(二)前言 文章 在windows下安装gulp —— 基于 Gulp 的前端集成解决方案(一) 中,已经完成对 gulp 的安装,由于是window环境,文中特意提到了可以通过安装 gitbash 来代替 ...定制Eclipse IDE之插件篇(二)上…

python中什么叫合法的标识_python合法标识符要求是什么

python合法标识符要求是&#xff1a;1、不能以数字开头&#xff1b;2、不能包含非法字符&#xff1b;3、数字不能作为标识符&#xff1b;4、不能包含空格&#xff1b;5、不能包含运算符。1.不能以数字开头>>> 2bin2 File "", line 1 2bin2 ^ SyntaxError: i…

hibernate状态_Hibernate状态的自然身份证

hibernate状态自然ID是可以唯一标识实体的一个或一组属性。 我们最多可以为一个实体定义一个自然ID。 当Hibernate在实体映射文件中看到natural-id标记时&#xff0c;它会自动在构成natural-id的属性上创建唯一且非空的约束。 首先&#xff0c;让我们看一下简单和复合自然ID的示…

android界面实现框架内页面跳转_KVM虚拟化管理平台的实现

KVM虚拟化管理平台的实现源码链接&#xff1a;https://github.com/wsjhk/IaaS_admin.git视频演示链接&#xff1a;https://v.youku.com/v_show/id_XMjg4MTczODU1Ng.html(N年前刚开始学习Python时做的第一个自主设计实现项目&#xff0c;代码实在写的烂&#xff0c;不喜勿喷&…

suse linux 查看内存,Suse linux查询内存大小的指令是什么?

满意答案CJTHI2013.08.18采纳率&#xff1a;49% 等级&#xff1a;12已帮助&#xff1a;5850人下面和大家分享在Linux系统下查看内存使用情况的free命令&#xff1a;[rootscs-2 tmp]# freetotal used free shared buffers cachedMem: 3266180 3250004 16176 0 110652 2668236…

Java 8中的并行和异步编程

并行代码是在多个线程上运行的代码&#xff0c;曾经是许多经验丰富的开发人员的噩梦&#xff0c;但是Java 8带来了许多更改&#xff0c;这些更改应该使这种提高性能的技巧更加易于管理。 并行流 在Java 8之前&#xff0c;并行&#xff08;或并发&#xff09;代码与顺序代码之间…

Linux微信运行错误,Ubuntu 16.04 运行微信开发者工具编译出错的解决办法

最近有折腾小程序的意向&#xff0c;但微信的开发者工具只提供了 Windows 和 Mac 两个版本&#xff0c;对于我这样的 Linux 用户来说不是那么地友好。经过观察发现&#xff0c;那个开发者工具实际上是基于nw.js开发的&#xff0c;天然地具有跨平台的属性&#xff0c;搜索Github…

springboot security 权限校验_springboot借助aop和注解实现权限校验

我们用springboot做后台开发&#xff0c;难免会用到权限校验&#xff0c;比如查看当前用户是否合法&#xff0c;是否是管理员。而spring的面向切面的特效可以帮助我们很好的实现动态的权限校验。这里我们就用到的spring的aop。接下来就带领大家用aop和注解来快速的实现权限校验…

linux 应用网络连接失败的原因,PuTTY网络错误:软件导致连接中止

解决PuTTY网络错误Software caused connection abort阅读有关该错误的PuTTY怎么说这是Windows网络代码由于某种原因而终止已建立的连接时所产生的一般错误。例如&#xff0c;如果将网络电缆从连接以太网的计算机背面拔出&#xff0c;或者Windows出于其他类似原因认为整个网络都…

javaone_替代JavaOne 2013

javaone我对无法参加JavaOne 2013感到很失望&#xff0c;但是很高兴看到涵盖这个年度会议的大量有用帖子。 在这篇文章中&#xff0c;我链接到许多此类资源&#xff0c;并提供了每篇文章相对于JavaOne 2013讨论内容的简短摘要。 主题演讲 主题演讲是“大公告”趋向于发生的地方…

electron sqlite3_electron集成sqlite3,win10上折腾了2天

要看解决办法的&#xff0c;直接把文章滚动到最后就行了&#xff0c;很简单。最近要做个 IM&#xff0c;PC 端选择用 electron&#xff0c;跨端的最佳选择了。桌面端项目&#xff0c;肯定少不了本地数据库&#xff0c;本来想用 sql.js&#xff0c;看了下需要手动拼接 SQL 语句&…

linux下客户端与ntp同步时间,如何在Windows客户端和Linux NTP服务器之间同步时间?...

我希望我的Windows 7机器能够从我的Linux Debian Sid服务器中获取时间.所以我想提前并从Debian存储库安装OpenNTPD.默认情况下它不会监听任何内容,因此我将其配置如下&#xff1a;listen on 192.168.0.1server 0.debian.pool.ntp.orgserver 1.debian.pool.ntp.orgserver 2.debi…

Java的最新发展– 2018年4月下旬

本周Java领域有一些最新的发展&#xff0c;我在本文中总结了其中的一些。 我们知道的JavaOne的终结 Stephen Chin在帖子“ JavaOne活动扩展了更多的曲目&#xff0c;语言和社区以及新名称 ”中说&#xff0c;“ JavaOne会议正在扩展以创建一个新的更大的活动&#xff0c;该活动…

arrays中copyof复制两个数组_C语言100题集合026-使用指针交换两个数组中的最大值

系列文章《C语言经典100例》持续创作中&#xff0c;欢迎大家的关注和支持。喜欢的同学记得点赞、转发、收藏哦&#xff5e;后续C语言经典100例将会以pdf和代码的形式发放到公众号欢迎关注&#xff1a;计算广告生态 即时查收1 题目函数&#xff1a;max()、swap()功能&#xff1a…

linux 嵌入式串口通信设计目的,基于linux的嵌入式串口通信.doc

PAGE天津电子信息职业技术学院《嵌入式软件编程》课程报告课程名称&#xff1a;基于linux的嵌入式串口通信课程代码&#xff1a; 115229姓 名&#xff1a; 甘琦学 号&#xff1a; 48专 业&#xff1a; 物联网应用技术班 级&#xff1a; 物联S14-1完成时间&#xff1a;2016 年 1…