Wie der Titel schon sagt, wird beschrieben, wie Sie ein Maven-Repository in Amazon S3 erstellen und mit Gradle verwenden.
Wenn Sie ein Modul entwickeln, das von einem internen Modul abhängt, wird es verwendet, um Abhängigkeiten aufzulösen und auf dem Server aufzubauen.
Die Ziele dieses Artikels sind 1 und 2 unten.
Insbesondere in Bezug auf 2 kann die Bibliothek heruntergeladen werden, wenn der Befehl "gradle build" mit den folgenden build.gradle-Einstellungen ausgeführt wird.
build.gradle
dependencies {
compile 'jp.co.goalist:library:1.0.0'
}
Der folgende Inhalt wird in diesem Artikel nicht behandelt. Eines Tages wieder.
Führen Sie den folgenden Befehl aus.
mkdir gradle-upload-s3repo
cd gradle-upload-s3repo/
gradle init --type=java-library
Die generierte Datei sieht folgendermaßen aus.
.
├── build.gradle
├── gradle
│ └── wrapper
│ ├── gradle-wrapper.jar
│ └── gradle-wrapper.properties
├── gradlew
├── gradlew.bat
├── settings.gradle
└── src
├── main
│ └── java
│ └── Library.java
└── test
└── java
└── LibraryTest.java
Zu diesem Zeitpunkt ist der Inhalt von build.gradle wie folgt. (Unnötige Kommentare und abhängige Bibliothekseinstellungen wurden gelöscht.)
build.gradle
apply plugin: 'java'
//Die abhängige Bibliothek ist also undefiniert
//Derzeit sind keine Repositorys und Abhängigkeiten erforderlich.
//Ich werde es später benutzen, also werde ich es verlassen.
repositories {
jcenter()
}
dependencies {
}
Geben Sie zur Bestätigung "gradle build" in das Projektstammverzeichnis ein und "gradle-upload-s3repo.jar" wird in build / libs generiert. Bisher ist dies die Standardfunktion des Java-Plug-Ins. Nach der Überprüfung löschen wir das Build-Ergebnis mit "gradle clean".
Maven definiert eine Bibliothek eindeutig mit einer Kombination aus Gruppen-ID, Artefakt-ID und Version.
Die diesmal erstellte Bibliothek folgt der Konvention,
Schlüssel | Wert |
---|---|
groupId | jp.co.goalist |
artifactId | library |
version | 1.0.0 |
Lasst uns.
Fügen Sie build.gradle die folgenden Einstellungen hinzu.
build.gradle
group = "jp.co.goalist"
version = "1.0.0"
Ändern Sie settings.gradle wie folgt.
settings.gradle
rootProject.name = 'library'
Wir werden die Schritte überspringen, aber einen Bucket erstellen, der als Repository verwendet werden kann.
Erstellen Sie dieses Mal "s3: //repository.hoge/maven/".
Legen Sie die Repository-URL, die IAM-Benutzerzugriffsschlüssel-ID und den geheimen Zugriffsschlüssel in ~ / .gradle / gradle.properties fest. Wenn Sie auf der Projektseite darauf verweisen, ist es nicht erforderlich, es in das Projekt aufzunehmen, sodass es in Bezug auf die Sicherheit sicher ist. (Ich sage normale Dinge) Sie müssen nicht in jedem Projekt die Zugriffsschlüssel-ID usw. festlegen.
gradle.properties
goalistRepoUrl=s3://repository.hoge/maven/
awsAccessKeyId = AKIAJWORQEXXXXXXXXXX
awsSecretAccessKey = waTa0aakgK2e5hXXXXXXXXXXXXXXXXXXXXXXXXXX
Verwenden Sie das Maven-Plugin uploadArchives, um es in das Maven-Repository hochzuladen. Fügen Sie die Einstellungen hinzu, die auf die Repository-URL, die IAM-Benutzerzugriffsschlüssel-ID und den geheimen Zugriffsschlüssel verweisen, die Sie zuvor festgelegt haben.
build.gradle
apply plugin: 'maven'
build.gradle
uploadArchives {
repositories {
mavenDeployer {
configuration = configurations.deployerJars
repository(url: goalistRepoUrl) {
authentication(userName: awsAccessKeyId, password: awsSecretAccessKey)
}
}
}
}
Wir werden org.springframework.build: aws-maven verwenden, um auf S3 zuzugreifen. Fügen Sie daher die Einstellungen zu Abhängigkeiten hinzu. Dieses Mal werde ich die neueste Version 5.0.0.RELEASE verwenden.
http://search.maven.org/#search%7Cgav%7C1%7Cg%3A%22org.springframework.build%22%20AND%20a%3A%22aws-maven%22
build.gradle
configurations {
deployerJars
}
dependencies {
deployerJars 'org.springframework.build:aws-maven:5.0.0.RELEASE'//hinzufügen
}
Damit ist die Einstellung abgeschlossen. Das Endergebnis ist wie folgt.
build.gradle
apply plugin: 'java'
apply plugin: 'maven'
group = "jp.co.goalist"
version = "1.0.0"
repositories {
jcenter()
}
configurations {
deployerJars
}
uploadArchives {
repositories {
mavenDeployer {
configuration = configurations.deployerJars
repository(url: goalistRepoUrl) {
authentication(userName: awsAccessKeyId, password: awsSecretAccessKey)
}
}
}
}
dependencies {
deployerJars 'org.springframework.build:aws-maven:5.0.0.RELEASE'
}
settings.gradle
rootProject.name = 'library'
Führen Sie den folgenden Befehl aus. Wenn BUILD SUCCESSFULL angezeigt wird, ist dies erfolgreich.
gradle uploadArchives
Wenn Sie S3 überprüfen
Ich denke, die Bibliothek wurde unter s3: //repository.hoge/maven/ hochgeladen.
Erstellen Sie ein Gradle-Projekt, das von der Bibliothek abhängt, die Sie dieses Mal hochgeladen haben.
mkdir gradle-upload-s3repo-child
cd gradle-upload-s3repo-child/
gradle init --type=java-library
Ändern Sie build.gradle, um die S3-Repository-Referenz- und Abhängigkeitseinstellungen festzulegen.
build.gradle
apply plugin: 'java'
repositories {
jcenter()
maven {
url goalistRepoUrl
credentials(AwsCredentials) {
accessKey awsAccessKeyId
secretKey awsSecretAccessKey
}
}
}
dependencies {
compile 'jp.co.goalist:library:1.0.0'
}
Führen Sie den folgenden Befehl aus, und wenn Sie bestätigen können, dass BUILD SUCCESSFUL ist, sind Sie fertig.
gradle build
Im tatsächlichen Betrieb sollte es möglich sein, nur vom Build-Server hochzuladen, damit der Entwickler nur darauf verweisen kann. Lassen Sie uns das Modul wiederverwenden.
Recommended Posts