2015-11-16 9 views
5

Ich versuche, diese Tutorials (1, 2) zu folgen, um das erwähnte Ziel zu erreichen. Aber ich bin noch immer diesen Fehler von Maven:Wie man ein Artefakt in Amazon S3 mit Maven einsetzt?

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 

Das sind meine lokalen Dateien, ~ .m2/settings.xml (mit fiktiven Werten, natürlich):

<?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> 

Und mein 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> 

ich verwende Maven 3.3.3.

EDIT Dies ist meine Politik Simulator Ergebnis: enter image description here

+0

s3: //myrepo.company.solutions/snapshot - Verbindung verweigert - Sind Sie sicher, dass der von Ihnen verwendete IAM-Benutzer über die relevanten S3-Berechtigungen verfügt? Oder sind Sie sicher, dass der fragliche Bucket keine Bucket-Richtlinie enthält, die die zulässigen Berechtigungen in der IAM-Richtlinie außer Kraft setzt? – mickzer

+0

@mickzer Ja, ich bin sicher, dass mein IAM-Benutzer die Berechtigung hat, alles in diesem Bucket zu tun, und mein Bucket hat bisher keine Richtlinien. –

Antwort

4

Nur, damit ihr wissen, was passiert ist. Das Problem war die Region von meinem Eimer war Frankfurt, die die neueste Version der Authentifizierung von Amazon AWS erfordert, Version 4. Soweit ich sagen kann, das Plugin aws-maven nicht diese neue Version jetzt unterstützen. Die Lösung bestand also darin, meinen Bucket in eine andere Region zu verschieben, die die ältere Version von Schemata unterstützt, wie US Standard. Und alles scheint jetzt gut zu funktionieren!

+0

Genau das ist mir auch passiert. Nebenbei: Hast du irgendwelche Maven-Projekte erstellt, die dieses private Maven-Repository nutzen? Wenn ja, welche URL hast du unter dem Tag "repository" in der pom.xml verwendet? Vielen Dank! –