如何使用 wagon s3 提供商进行部署?
我发现了几个插件,其中大部分不完整,其中一些没有维护。还有一个来自官方 maven SVN 存储库的沙盒插件,但我正在考虑如何使用它。
有什么提示吗?
spring 有一个更新的 s3 提供程序,它可以工作:
<build>
<extensions>
<extension>
<groupId>org.springframework.build.aws</groupId>
<artifactId>org.springframework.build.aws.maven</artifactId>
<version>3.0.0.RELEASE</version>
</extension>
</extensions>
</build>
如果你想在 maven 3 中使用它,你需要在你的 settings.xml 中加密你的密码。
分步说明在这里。
这辆货车是我们用来部署到 S3 的。它类似于 Spring 的,但具有多线程上传支持。
这让 CI 服务器可以非常快速地将大量 Maven 内容推送到 S3。(约 50 秒内 22k 个文件和 400mb 的内容)
https://github.com/jcaddel/maven-s3-wagon
<build>
<extensions>
<extension>
<groupId>org.kuali.maven.wagons</groupId>
<artifactId>maven-s3-wagon</artifactId>
<version>1.2.1</version>
</extension>
</extensions>
</build>
另一种选择:
<build>
<extensions>
<extension>
<groupId>org.cyclopsgroup</groupId>
<artifactId>awss3-maven-wagon</artifactId>
<version>0.1</version>
</extension>
</extensions>
[...]
</build>
然后在settings.xml
:
<servers>
<server>
<id>foo.s3</id>
<username>AKIAJ.......OLVBA</username>
<password>PsndORui..............KGZtDpeIYjsA/</password>
</server>
</servers>
然后在你的pom.xml
:
<distributionManagement>
<repository>
<id>foo</id>
<url>s3://foo.s3/</url>
</repository>
</distributionManagement>
应该管用。
另一个选项是 jcaddel 插件的一个分支,最后一次更新是 2016 年 3 月,但对我有用:
<extension>
<groupId>co.axiomzen.maven.wagons</groupId>
<artifactId>maven-s3-wagon</artifactId>
<version>1.2.6</version>
</extension>
看起来主要的弱点是:旧的 AWS 开发工具包版本,不使用默认 AWS 凭证链,因此缺乏对来自 ECS 的凭证之类的支持。此外,URL 中的“@”和“:”等字符没有正确编码,但我不确定这是 wagon 还是 Maven 的问题。