Comme le titre l'indique, il décrit comment créer un référentiel Maven sur Amazon S3 et l'utiliser avec Gradle.
Lors du développement d'un module qui dépend d'un module interne, il est utilisé pour résoudre les dépendances et construire sur le serveur.
Les objectifs de cet article sont 1 et 2 ci-dessous.
Concernant 2, en particulier, la bibliothèque peut être téléchargée lorsque la commande "gradle build" est exécutée avec les paramètres build.gradle suivants.
build.gradle
dependencies {
compile 'jp.co.goalist:library:1.0.0'
}
Le contenu suivant sort du cadre de cet article. Un jour encore.
Exécutez la commande suivante.
mkdir gradle-upload-s3repo
cd gradle-upload-s3repo/
gradle init --type=java-library
Le fichier généré ressemble à ceci.
.
├── build.gradle
├── gradle
│ └── wrapper
│ ├── gradle-wrapper.jar
│ └── gradle-wrapper.properties
├── gradlew
├── gradlew.bat
├── settings.gradle
└── src
├── main
│ └── java
│ └── Library.java
└── test
└── java
└── LibraryTest.java
À ce stade, le contenu de build.gradle est le suivant. (Les commentaires inutiles et les paramètres de bibliothèque dépendants ont été supprimés)
build.gradle
apply plugin: 'java'
//La bibliothèque dépendante n'est pas définie, donc
//Aucun référentiel et aucune dépendance ne sont nécessaires pour le moment,
//Je vais l'utiliser plus tard, donc je vais le laisser.
repositories {
jcenter()
}
dependencies {
}
Pour confirmation, tapez "gradle build" dans la racine du projet et "gradle-upload-s3repo.jar" sera généré dans build / libs. Jusqu'à présent, c'est la fonction par défaut du plug-in java. Après vérification, supprimons le résultat de la construction par "gradle clean".
Maven définit de manière unique une bibliothèque avec une combinaison de groupId, artifactId et version.
La bibliothèque créée cette fois suit la convention,
Clé | valeur |
---|---|
groupId | jp.co.goalist |
artifactId | library |
version | 1.0.0 |
Allons.
Ajoutez les paramètres suivants à build.gradle.
build.gradle
group = "jp.co.goalist"
version = "1.0.0"
Modifiez settings.gradle comme suit.
settings.gradle
rootProject.name = 'library'
Nous allons sauter les étapes, mais créer un bucket à utiliser comme référentiel.
Cette fois, créez "s3: //repository.hoge/maven/".
Définissez l'URL du référentiel, l'ID de clé d'accès utilisateur IAM et la clé d'accès secrète dans ~ / .gradle / gradle.properties. En se référant à cela côté projet, il n'est pas nécessaire de l'inclure dans le projet, donc c'est sûr en termes de sécurité. (Je dis des choses normales) Il n'est pas nécessaire de définir l'ID de clé d'accès, etc. dans chaque projet.
gradle.properties
goalistRepoUrl=s3://repository.hoge/maven/
awsAccessKeyId = AKIAJWORQEXXXXXXXXXX
awsSecretAccessKey = waTa0aakgK2e5hXXXXXXXXXXXXXXXXXXXXXXXXXX
Utilisez le plugin maven uploadArchives pour télécharger dans le référentiel Maven. Ajoutez les paramètres pour faire référence à l'URL du référentiel, à l'ID de clé d'accès utilisateur IAM et à la clé d'accès secrète que vous avez définies précédemment.
build.gradle
apply plugin: 'maven'
build.gradle
uploadArchives {
repositories {
mavenDeployer {
configuration = configurations.deployerJars
repository(url: goalistRepoUrl) {
authentication(userName: awsAccessKeyId, password: awsSecretAccessKey)
}
}
}
}
Nous utiliserons org.springframework.build: aws-maven pour accéder à S3, donc ajoutez les paramètres aux dépendances. Cette fois, j'utiliserai la dernière version 5.0.0.RELEASE.
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'//ajouter à
}
Ceci termine le réglage. Le résultat final est le suivant.
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'
Exécutez la commande suivante et si BUILD SUCCESSFULL s'affiche, cela réussit.
gradle uploadArchives
Lorsque vous vérifiez S3
Je pense que la bibliothèque a été téléchargée sous s3: //repository.hoge/maven/.
Créez un projet Gradle qui dépend de la bibliothèque que vous avez téléchargée cette fois.
mkdir gradle-upload-s3repo-child
cd gradle-upload-s3repo-child/
gradle init --type=java-library
Modifiez build.gradle pour définir la référence du référentiel S3 et les paramètres de dépendance.
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'
}
Exécutez la commande suivante, et si vous pouvez confirmer que CONSTRUCTION RÉUSSIE, vous avez terminé.
gradle build
En fonctionnement réel, il devrait être possible de télécharger uniquement à partir du serveur de construction afin que le développeur puisse uniquement s'y référer. Réutilisons le module.
Recommended Posts