2015-11-16 66 views
5

我试图按照这些教程(1,2)来实现上述目标。但我还是从Maven的收到此错误:如何使用Maven将工件部署到Amazon S3?

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 

这些都是我的本地文件,〜.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> 

而且我的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> 

我使用Maven 3.3.3。

编辑 这是我的政策模拟结果: enter image description here

+0

s3://myrepo.company.solutions/snapshot - 连接被拒绝 - 您确定您使用的IAM用户具有相关的S3权限吗?或者您确定所涉及的存储桶没有覆盖IAM策略中允许的权限的存储桶策略? – mickzer

+0

@mickzer是的,我确定我的IAM用户有权在该存储桶中做每件事,而我的存储桶目前没有任何政策。 –

回答

4

只是为了让你们知道发生了什么。 问题是我的桶区域是Frankfurt,它需要亚马逊AWS版本4的最新版本的认证。据我所知,插件aws-maven现在不支持这个新版本。所以解决方案是将我的存储桶移到另一个支持旧版本方案的区域,如美国标准。现在一切都好了!

+0

到底发生了什么事。在附注中,您是否构建了使用此私有Maven存储库的所有Maven项目?如果是这样,你在pom.xml中的标签“repository”下使用了什么网址?谢谢! –