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.
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 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-bucket
Bitte 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/*"
]
}
]
}
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>
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)
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