如何使用Maven将工件部署到Amazon S3?

Val*_*lva 7 amazon-s3 amazon-web-services maven-3 maven

我试图按照这些教程(1,2)达到目标提到.但我仍然从Maven得到这个错误:

INFO] Installing /home/valter/temp-workspace/document-engine/target/application-1.0.0.CI-SNAPSHOT.jar to /home/valter/.m2/repository/com/company-solutions/application/1.0.0.CI-SNAPSHOT/application-1.0.0.CI-SNAPSHOT.jar
[INFO] Installing /home/valter/temp-workspace/document-engine/pom.xml to /home/valter/.m2/repository/com/company-solutions/application/1.0.0.CI-SNAPSHOT/application-1.0.0.CI-SNAPSHOT.pom
[INFO] 
[INFO] --- maven-deploy-plugin:2.7:deploy (default-deploy) @ application ---
Downloading: s3://myrepo.company.solutions/snapshot/com/company-solutions/application/1.0.0.CI-SNAPSHOT/maven-metadata.xml
[WARNING] s3://myrepo.company.solutions/snapshot - Connection refused
[WARNING] Could not transfer metadata com.company-solutions:application:1.0.0.CI-SNAPSHOT/maven-metadata.xml from/to s3.snapshot (s3://myrepo.company.solutions/snapshot): Could not connect to repository
[INFO] Logged off - myrepo.company.solutions
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 01:31 min
[INFO] Finished at: 2015-11-16T18:36:26+01:00
[INFO] Final Memory: 181M/1289M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.7:deploy (default-deploy) on project application: Failed to retrieve remote metadata com.company-solutions:application:1.0.0.CI-SNAPSHOT/maven-metadata.xml: Could not transfer metadata com.company-solutions:application:1.0.0.CI-SNAPSHOT/maven-metadata.xml from/to s3.snapshot (s3://myrepo.company.solutions/snapshot): Could not connect to repository: Status Code: 400, AWS Service: Amazon S3, AWS Request ID: 709B60A05E8E7062, AWS Error Code: InvalidRequest, AWS Error Message: The authorization mechanism you have provided is not supported. Please use AWS4-HMAC-SHA256. -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
Run Code Online (Sandbox Code Playgroud)

这些是我的本地文件,〜.m2 / settings.xml(当然还有虚构的值):

<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 
      http://maven.apache.org/xsd/settings-1.0.0.xsd">
    <servers>
        <server>
            <id>s3.site</id>
            <username>access_key</username>
            <password>private_key</password>
        </server>
        <server>
            <id>s3.release</id>
            <username>access_key</username>
            <password>private_key</password>
        </server>
        <server>
            <id>s3.snapshot</id>
            <username>access_key</username>
            <password>private_key</password>
        </server>
    </servers>
</settings>
Run Code Online (Sandbox Code Playgroud)

还有我的pom.xml:

<project>
    <build>
        <extensions>
            <extension>
                <groupId>org.kuali.maven.wagons</groupId>
                <artifactId>maven-s3-wagon</artifactId>
                <version>1.2.1</version>
            </extension>
        </extensions>
        ...
    </build>
    <distributionManagement>
        <site>
            <id>s3.site</id>
            <url>s3://myrepo.company.solutions/site</url>
        </site>
        <repository>
            <id>s3.release</id>
            <url>s3://myrepo.company.solutions/release</url>
        </repository>
        <snapshotRepository>
            <id>s3.snapshot</id>
            <url>s3://myrepo.company.solutions/snapshot</url>
        </snapshotRepository>
    </distributionManagement>
...
</project>
Run Code Online (Sandbox Code Playgroud)

我正在使用Maven 3.3.3.

编辑 这是我的政策模拟器结果: 在此输入图像描述

Val*_*lva 5

只是为了让你们知道发生了什么.问题是我的存储区域是法兰克福,它需要Amazon AWS版本4的最新版本的身份验证.据我所知,该插件aws-maven现在不支持这个新版本.因此,解决方案是将我的桶移到另一个支持旧版本方案的区域,如美国标准.现在一切似乎都很好!