[JAVA] Erstellen Sie ein Maven-Repository für AWS S3-Services

Am Anfang

Wenn Sie Apache Maven verwenden, ist es praktisch, ein internes Repository zu erstellen. Bisher haben wir eine Umgebung auf einem Webserver erstellt, der WebDAV verwenden kann. Da es auf S3 unter AWS aufgebaut werden kann, ist es in Bezug auf die Kosten definitiv vorteilhaft. Lassen Sie uns dies diesmal verwenden.

Vorbereitungsumgebung

Die vorbereitete Umgebung ist wie folgt. Windows7 Pro Java 1.8 Maven 3.3.3 Eclipse4.6 Spring Boot 1.5.6.RELEASE (für Demo)

AWS arbeiten

AWS kann ein vorhandenes Konto sein. Dieses Mal haben wir jedoch ein Konto vorbereitet, das aus Sicherheitsgründen auf S3 zugreifen kann. Ich denke, die Zugriffsrichtlinie sollte so aussehen. your-bucketBitte schreiben Sie den Ort selbst neu.

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:ListAllMyBuckets"
            ],
            "Resource": "arn:aws:s3:::*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:*"
            ],
            "Resource": [
                "arn:aws:s3:::your-bucket",
                "arn:aws:s3:::your-bucket/*"
            ]
        }
    ]
}

Java & Eclipse funktionieren

Erstellen Sie ein geeignetes Maven-Projekt. Ich habe es im Spring Boot-Projekt versucht. Das Folgende ist ein Auszug, also schreiben Sie ihn bitte bei Bedarf neu.

pom.xml


<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <!-- (Kürzung) -->

  <repositories>
    <repository>
      <id>s3-repos</id>
      <name>AWS S3 Repository</name>
      <url>s3://your-bucket/</url>
    </repository>
  </repositories>

  <distributionManagement>
    <repository>
      <id>aws-snapshot</id>
      <name>AWS S3 Repository</name>
      <url>s3://your-bucket/snapshot</url>
    </repository>
  </distributionManagement>

  <dependencies>
    <dependency>
  <!-- (Kürzung) -->
    </dependency>
  </dependencies>


  <build>
    <plugins>
      <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
      </plugin>
      <!--Entspricht verstümmelten Zeichen bei der Ausführung von Junit in einer Windows-Umgebung-->
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <configuration>
          <junitArtifactName>junit:junit</junitArtifactName>
          <encoding>UTF-8</encoding>
          <inputEncoding>UTF-8</inputEncoding>
          <outputEncoding>UTF-8</outputEncoding>
          <argLine>-Dfile.encoding=UTF-8</argLine>
          <!-- <skipTests>true</skipTests> -->
        </configuration>
      </plugin>
    </plugins>
    <extensions>
      <extension>
        <groupId>org.springframework.build</groupId>
        <artifactId>aws-maven</artifactId>
        <version>5.0.0.RELEASE</version>
      </extension>
    </extensions>
  </build>
</project>

Legen Sie danach die Benutzereinstellungen fest, die mit dem Befehl Maven verwendet werden sollen. Geben Sie für Eclipse Fenster-> Einstellungen-> Maven-> Benutzereinstellungen an oder geben Sie Benutzereinstellungen an, wenn Maven ausgeführt wird. Ich denke, es ist in Ordnung, Parameter einzustellen, wenn Maven ausgeführt wird. Wenn für den Zugriff auf S3 Proxy-Einstellungen erforderlich sind, fügen Sie die entsprechenden Proxy-Server-Einstellungen hinzu.

setting.xml


<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.1.0 http://maven.apache.org/xsd/settings-1.1.0.xsd">
  <proxies>
    <proxy>
      <id>http_proxy</id>
      <active>true</active>
      <protocol>http</protocol>
      <host>xx.xx.xx.xx</host>
      <port>xx</port>
    </proxy>
    <proxy>
      <id>https_proxy</id>
      <active>true</active>
      <protocol>https</protocol>
      <host>xx.xx.xx.xx</host>
      <port>xx</port>
    </proxy>
    <proxy>
      <id>s3_proxy</id>
      <active>true</active>
      <protocol>s3</protocol>
      <host>xx.xx.xx.xx</host>
      <port>xx</port>
    </proxy>
  </proxies>
  <servers>
    <server>
      <id>aws-release</id>
      <username>Zugriffsschlüssel-ID</username>
      <password>Geheimer Zugangsschlüssel</password>
    </server>
    <server>
      <id>aws-snapshot</id>
      <username>Zugriffsschlüssel-ID</username>
      <password>Geheimer Zugangsschlüssel</password>
    </server>
  </servers>
</settings>

Ausführungsergebnis

Führen Sie den Befehl mvn deploy aus, um sich bei S3 zu registrieren. Ich denke, es ist in Ordnung, zwischen Snapshot und Release zu wechseln, indem der Name des Repositorys geändert wird, auf das zugegriffen werden soll. Ich denke, es gibt noch einen anderen guten Weg, aber im Moment ist es das.

[INFO] --- maven-deploy-plugin:2.8.2:deploy (default-deploy) @ ews ---
[INFO] Uploading: s3://your-bucket/snapshot/com/example/1.0.0/sample-1.0.0.jar
[INFO] Configuring Proxy. Proxy Host: xx.xx.xx.xx Proxy Port: xx
[INFO] Uploaded: s3://your-bucket/snapshot/com/example/1.0.0/sample-1.0.0.jar (2000 KB at 1000.0 KB/sec)
[INFO] Uploading: s3://your-bucket/snapshot/com/example/1.0.0/sample-1.0.0.pom
[INFO] Uploaded: s3://your-bucket/snapshot/com/example/1.0.0/sample-1.0.0.pom (5 KB at 1.0 KB/sec)
[INFO] Downloading: s3://your-bucket/snapshot/com/example/maven-metadata.xml
[INFO] Uploading: s3://your-bucket/snapshot/com/example/maven-metadata.xml
[INFO] Uploaded: s3://your-bucket/snapshot/com/example/maven-metadata.xml (300 B at 0.1 KB/sec)

Erwägung

Ich habe im Internet gesucht, aber das Verfahren nicht gut verstanden, also habe ich es tatsächlich versucht. Ich habe nicht versucht, es aus anderen Projekten zu ziehen, aber wenn Sie die JAR-Datei nicht öffentlich machen möchten, können Sie sie ziemlich oft verwenden.

Recommended Posts

Erstellen Sie ein Maven-Repository für AWS S3-Services
Erstellen Sie ein Maven-Repository in AWS S3
Erstellen Sie ein internes Maven-Repository in Google Cloud Storage
Abhängigkeitsmanagement in Gradle mithilfe des Maven-Repositorys unter Amazon S3
Erstellen Sie einen Minecraft-Server auf AWS
Erstellen Sie eine Java 8-Entwicklungsumgebung mit AWS Cloud 9
Erstellen Sie eine Umgebung mit Docker unter AWS
So speichern Sie Bilder auf Heroku in S3 unter AWS
Erstellen Sie eine Laravel-Umgebung auf einer AWS-Instanz
Memo zum Erstellen einer Servlet-Umgebung auf EC2 von AWS
Erstellen Sie eine Ruby on Rails-Entwicklungsumgebung in AWS Cloud9
Lokaler Cache des Maven-Repositorys
Maven auf CentOS 7 Tutorial