如何与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 SDK版本,不使用默认的AWS凭证链,因此缺乏对ECS凭证等内容的支持。另外,URL 中的“@”和“:”等字符未正确编码,但我不确定这是 wagon 还是 Maven 的问题。
我制作了一个支持使用第二版 SDK 的 AWS SSO(OIDC 身份验证)的产品。也许它对你也有用。
https://github.com/embriq-nordic/aws-oidc-s3-maven-wagon
<extension>
<groupId>io.github.embriq-nordic</groupId>
<artifactId>aws-oidc-s3-maven-wagon</artifactId>
<version>1.1.0</version>
</extension>
由于它使用第二个版本的 SDK,因此它使用该版本所使用的凭证提供程序链。