[JAVA] Créer un référentiel Maven sur AWS S3

Si vous avez besoin d'un référentiel Maven

Il existe de nombreux cas où vous souhaitez gérer des bibliothèques Java dans un environnement privé tel qu'en interne. À une certaine échelle, nous présenterons Nexus, mais il y a des moments où nous voulons rendre les choses un peu plus faciles. Cette entrée est un moyen de créer un référentiel Maven à l'aide d'AWS S3.

procédure

Créez et utilisez le référentiel Maven dans l'ordre suivant.

  1. Créez un compartiment pour le référentiel Maven dans S3
  2. Créez un utilisateur pour accéder au référentiel S3 Maven
  3. Paramètres d'enregistrement de la bibliothèque avec le plugin Gradle
  4. Paramètres du client pour l'utilisation de la bibliothèque

1. Créez un compartiment pour le référentiel Maven

Il n'y a rien de spécial à mentionner, et comme d'habitude, créez un Bucket pour S3. Disons que vous avez créé un bucket appelé my-maven.

2. Créez un utilisateur pour accéder au référentiel Maven

Bien que cela ne soit pas obligatoire, créez un utilisateur pour le référentiel Maven et ajoutez des autorisations S3 pour un contrôle d'accès approprié. De plus, à ce moment, vous obtiendrez l '«ID de clé d'accès» AWS et la «Clé d'accès secrète».

Politique d'accès


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

3. Paramètres d'enregistrement de la bibliothèque avec le plugin Gradle

Appliquez le plug-in maven-publish et configurez les paramètres d'enregistrement de la bibliothèque.

build.gradle


apply plugin: 'maven-publish'

def tag = System.getenv('CIRCLE_TAG') //Détecte le push de balises git(Exemple pour CircleCI)
def buildVersion = "1.0.0"
group = 'com.example'
version = tag ? "${tag}-RELEASE" : "${buildVersion}-SNAPSHOT" //RELEASE pour tag push, INSTANTANÉ sinon(Cette zone est spécifiée en fonction de l'opération réelle)

//Pour inclure la source dans la bibliothèque enregistrée dans le référentiel
task sourceJar(type: Jar) {
    from sourceSets.main.allJava
}

publishing {
    repositories {
        maven {
            url "s3://my-maven"
            credentials(AwsCredentials) {
                accessKey System.getenv('AWS_ACCESS_KEY_ID')
                secretKey System.getenv('AWS_SECRET_ACCESS_KEY')
            }
        }
    }
    publications {
        mavenJava(MavenPublication) {
            from components.java
            artifact sourceJar {
                classifier "sources"
            }
        }
    }
}

Utilisez les commandes suivantes pour créer la source et enregistrer le référentiel. Normalement, vous l'utiliserez via CI etc.

$ gradle publish

4. Paramètres du client pour l'utilisation de la bibliothèque

Si vous ajoutez le référentiel Maven créé côté client, vous pouvez l'utiliser comme n'importe quel autre référentiel.

build.gradle


repositories {
	mavenCentral()
	//Ajoutez ce qui suit
	maven {
		url "s3://my-maven"
		credentials(AwsCredentials) {
			accessKey System.getenv('AWS_ACCESS_KEY_ID')
			secretKey System.getenv('AWS_SECRET_ACCESS_KEY')
		}
	}
}

Résumé

C'est facile à créer, c'est donc un excellent moyen de gérer votre bibliothèque lorsque vous en avez besoin. Aussi, cet exemple était Gradle, mais vous pouvez faire la même chose avec Maven.

Recommended Posts

Créer un référentiel Maven sur AWS S3
Créer un référentiel Maven sur les services AWS S3
Créez un référentiel interne Maven sur Google Cloud Storage
Créer un serveur Minecraft sur AWS
Créer un environnement Laravel sur une instance AWS
Mémo pour créer un environnement Servlet sur EC2 d'AWS
Créer un environnement de développement Ruby on Rails sur AWS Cloud9
Gestion des dépendances dans Gradle à l'aide du référentiel Maven sur Amazon S3
Créer un environnement XAMPP sur Ubuntu
Comment créer un référentiel Maven pour 2020
Créer un environnement de développement Java sur Mac
Créer un environnement de développement Java 8 avec AWS Cloud 9
Créer un environnement avec Docker sur AWS
Créez un environnement JMeter sur votre Mac
Créez un environnement de développement sur AWS EC2 avec CentOS7 + Nginx + pm2 + Nuxt.js
[AWS SDK for Java] Définir la stratégie de nouvelle tentative pour le client S3
Création d'un flux de test sur CircleCI à l'aide de Jib
J'ai essayé de mettre en place un référentiel distant pour Maven
Créer un environnement d'exécution Java sur Sakura VPS
Comment créer un environnement Pytorch sur Ubuntu
Une facture élevée d'AWS lors du développement sur rails ...
Cache local du référentiel Maven
Tutoriel Maven sur CentOS 7
java construire un triangle
Créer un référentiel local
Création d'un hôte Docker sur AWS à l'aide de Docker Machine (mémorandum personnel)
Une note de service lors de l'exécution d'Apache Maven sur un proxy interne
[Docker] Créez un site avec Hugo et publiez-le sur GitHub
Comment accéder à un conteneur s'exécutant sur AWS Fargate
Comment déployer une application kotlin (java) sur AWS Fargate
Notes sur la création de Jitsi Meet sur Azure avec docker-compose
Créez un environnement virtuel CentOS 8 sur votre Mac à l'aide de VirtualBox
Comment déployer l'application Rails sur AWS (résumé de l'article)
Avec [AWS] CodeStar, vous pouvez créer un projet Spring (Java) s'exécutant sur Lambda en seulement 3 minutes! !!