UtiliserCodeArtifactavec Gradle - CodeArtifact

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

UtiliserCodeArtifactavec Gradle

Une fois que vous aurezCodeArtifactjeton d'authentification dans une variable d'environnement, comme décrit dansTransmettre un jeton d'authentification à l'aide d'une variable d'environnement, suivez ces instructions pour utiliser les packages Maven depuis et publier de nouveaux packages vers unCodeArtifactréférentiel.

Extraire les dépendances

Pour récupérer les dépendances à partir deCodeArtifactdans une version Gradle, utilisez la procédure suivante.

Pour récupérer les dépendances à partir deCodeArtifactdans une version Gradle
  1. Si ce n'est pas le cas, créez et stockez unCodeArtifactjeton d'authentification dans une variable d'environnement en suivant la procédure décrite dansTransmettre un jeton d'authentification à l'aide d'une variable d'environnement.

  2. Ajoutez unmavensection durepositoriessection du projetbuild.gradlefichier.

    maven { url 'https://my_domain-111122223333.d.codeartifact.region.amazonaws.com/maven/my_repo/' credentials { username "aws" password System.env.CODEARTIFACT_AUTH_TOKEN } }

    Leurldans l'exemple précédent est votreCodeArtifactpoint de terminaison du référentiel. Gradle utilise le point de terminaison pour se connecter à votre référentiel. Dans l'échantillon,my_domainest le nom de votre domaine,111122223333est l'ID du propriétaire du domaine, etmy_repoest le nom de votre dépôt. Vous pouvez récupérer le point de terminaison d'un dépôt à l'aide duget-repository-endpoint AWS CLIcommande.

    Par exemple, avec un dépôt nommémon_repodans un domaine nommémon_domaine, la commande est la suivante :

    aws codeartifact get-repository-endpoint --domain my_domain --domain-owner 111122223333 --repository my_repo --format maven

    Leget-repository-endpointla commande renverra le point de terminaison du référentiel :

    url 'https://my_domain-111122223333.d.codeartifact.region.amazonaws.com/maven/my_repo/'

    Lecredentialsdans l'exemple précédent, l'objet inclutCodeArtifactjeton d'authentification que vous avez créé à l'étape 1 et que Gradle utilise pour s'authentifier auprès deCodeArtifact.

  3. (Facultatif) - Pour utiliserCodeArtifactréférentiel comme seule source pour les dépendances de votre projet, supprimez toutes les autres sections dansrepositoriesà partir debuild.gradle. Si vous avez plusieurs référentiels, Gradle recherche les dépendances dans chaque référentiel dans l'ordre dans lequel elles sont répertoriées.

  4. Après avoir configuré le référentiel, vous pouvez ajouter des dépendances de projet audependenciessection avec syntaxe Gradle standard.

    dependencies { implementation 'com.google.guava:guava:27.1-jre' implementation 'commons-cli:commons-cli:1.4' testImplementation 'org.testng:testng:6.14.3' }

Plug-ins de récupération

Par défaut, Gradle résoudra les plugins du public.Portail du plugin Gradle. Pour extraire des plugins d'unCodeArtifactréférentiel, utilisez la procédure suivante.

Pour extraire des plugins d'unCodeArtifactréférentiel
  1. Si ce n'est pas le cas, créez et stockez unCodeArtifactjeton d'authentification dans une variable d'environnement en suivant la procédure décrite dansTransmettre un jeton d'authentification à l'aide d'une variable d'environnement.

  2. Ajoutez unpluginManagementbloquer sur votresettings.gradlefichier. LepluginManagementle bloc doit apparaître avant toute autre instruction danssettings.gradle, consultez l'extrait suivant :

    pluginManagement { repositories { maven { name 'my_repo' url 'https://my_domain-111122223333.d.codeartifact.region.amazonaws.com/maven/my_repo/' credentials { username 'aws' password System.env.CODEARTIFACT_AUTH_TOKEN } } } }

Cela garantira que Gradle résout les plugins à partir du référentiel spécifié. Le référentiel doit avoir un référentiel en amont avec une connexion externe au portail du plugin Gradle (par ex.gradle-plugins-store) afin que les plugins Gradle couramment requis soient disponibles pour la compilation. Pour plus d'informations, consultez leDocumentation Gradle.

Publier des artefacts

Cette section décrit comment publier une bibliothèque Java créée avec Gradle sur unCodeArtifactréférentiel.

Tout d'abord, ajoutez lemaven-publishplugin vers lepluginssection du projetbuild.gradlefichier.

plugins { id 'java-library' id 'maven-publish' }

Ensuite, ajoutez unpublishingsection du projetbuild.gradlefichier.

publishing { publications { mavenJava(MavenPublication) { groupId = 'group-id' artifactId = 'artifact-id' version = 'version' from components.java } } repositories { maven { url 'https://my_domain-111122223333.d.codeartifact.region.amazonaws.com/maven/my_repo/' credentials { username "aws" password System.env.CODEARTIFACT_AUTH_TOKEN } } } }

Lemaven-publishle plugin génère un fichier POM basé surgroupId,artifactId, etversionspécifiée dans lepublishingsection.

Après ces modifications apportées àbuild.gradlesont terminés, exécutez la commande suivante pour créer le projet et le télécharger dans le référentiel.

./gradlew publish

Utiliserlist-package-versionspour vérifier que le package a bien été publié.

aws codeartifact list-package-versions --domain my_domain --domain-owner 111122223333 --repository my_repo --format maven\ --namespace com.company.framework --package my-package-name

Exemple de sortie :

{ "format": "maven", "namespace": "com.company.framework", "package": "example", "versions": [ { "version": "1.0", "revision": "REVISION-SAMPLE-1-C7F4S5E9B772FC", "status": "Published" } ] }

Pour plus d'informations, consultez les rubriques suivantes sur le site Web de Gradle :

Exécuter une version Gradle dans IntelliJ IDEA

Vous pouvez exécuter une version Gradle dans IntelliJ IDEA qui extrait les dépendances deCodeArtifact. Pour vous authentifier auprèsCodeArtifact, vous devez fournir à Gradle unCodeArtifactjeton d'autorisation. Il existe trois méthodes pour fournir un jeton d'authentification.

  • Méthode 1 : Stockage du jeton d'authentification dansgradle.properties. Utilisez cette méthode si vous parvenez à remplacer ou à compléter le contenu dugradle.propertiesfichier.

  • Méthode 2 : Stockage du jeton d'authentification dans un fichier séparé. Utilisez cette méthode si vous ne souhaitez pas modifier votregradle.propertiesfichier.

  • Méthode 3 : Génération d'un nouveau jeton d'authentification pour chaque exécution en exécutantawssous forme de script intégré dansbuild.gradle. Utilisez cette méthode si vous souhaitez que le script Gradle récupère un nouveau jeton à chaque exécution. Le jeton ne sera pas stocké dans le système de fichiers.

Token stored in gradle.properties
Méthode 1 : Stockage du jeton d'authentification dansgradle.properties
Note

L'exemple montregradle.propertiesfichier situé dansGRADLE_USER_HOME.

  1. Mettez à jour votrebuild.gradlefichier avec l'extrait suivant :

    repositories { maven { url 'https://my_domain-111122223333.d.codeartifact.region.amazonaws.com/maven/my_repo/' credentials { username "aws" password "$codeartifactToken" } } }
  2. Pour récupérer des plugins à partir deCodeArtifact, ajoutez unpluginManagementbloquer sur votresettings.gradlefichier. LepluginManagementle bloc doit apparaître avant toute autre instruction danssettings.gradle.

    pluginManagement { repositories { maven { name 'my_repo' url 'https://my_domain-111122223333.codeartifact.region.amazonaws.com/maven/my_repo/' credentials { username 'aws' password "$codeartifactToken" } } } }
  3. Récupérez unCodeArtifactjeton d'authentification :

    export CODEARTIFACT_AUTH_TOKEN=`aws codeartifact get-authorization-token --domain my_domain --domain-owner 111122223333 --query authorizationToken --output text --profile profile-name`
  4. Écrivez le jeton d'authentification dans legradle.propertiesfichier :

    echo "codeartifactToken=$CODEARTIFACT_AUTH_TOKEN" > ~/.gradle/gradle.properties
Token stored in separate file
Méthode 2 : Stockage du jeton d'authentification dans un fichier séparé
  1. Mettez à jour votrebuild.gradlefichier avec l'extrait suivant :

    def props = new Properties() file("file").withInputStream { props.load(it) } repositories { maven { url 'https://my_domain-111122223333.d.codeartifact.region.amazonaws.com/maven/my_repo/' credentials { username "aws" password props.getProperty("codeartifactToken") } } }
  2. Pour récupérer des plugins à partir deCodeArtifact, ajoutez unpluginManagementbloquer sur votresettings.gradlefichier. LepluginManagementle bloc doit apparaître avant toute autre instruction danssettings.gradle.

    pluginManagement { def props = new Properties() file("file").withInputStream { props.load(it) } repositories { maven { name 'my_repo' url 'https://my_domain-111122223333.codeartifact.region.amazonaws.com/maven/my_repo/' credentials { username 'aws' password props.getProperty("codeartifactToken") } } } }
  3. Récupérez unCodeArtifactjeton d'authentification :

    export CODEARTIFACT_AUTH_TOKEN=`aws codeartifact get-authorization-token --domain my_domain --domain-owner 111122223333 --query authorizationToken --output text --profile profile-name`
  4. Écrivez le jeton d'authentification dans le fichier spécifié dans votrebuild.gradlefichier :

    echo "codeartifactToken=$CODEARTIFACT_AUTH_TOKEN" > file
Token generated for each run in build.gradle
Méthode 3 : Génération d'un nouveau jeton d'authentification pour chaque exécution en exécutantawssous forme de script intégré dansbuild.gradle
  1. Mettez à jour votrebuild.gradlefichier avec l'extrait suivant :

    def codeartifactToken = "aws codeartifact get-authorization-token --domain my_domain --domain-owner 111122223333 --query authorizationToken --output text --profile profile-name".execute().text repositories { maven { url 'https://my_domain-111122223333.d.codeartifact.region.amazonaws.com/maven/my_repo/' credentials { username "aws" password codeartifactToken } } }
  2. Pour récupérer des plugins à partir deCodeArtifact, ajoutez unpluginManagementbloquer sur votresettings.gradlefichier. LepluginManagementle bloc doit apparaître avant toute autre instruction danssettings.gradle.

    pluginManagement { def codeartifactToken = "aws codeartifact get-authorization-token --domain my_domain --domain-owner 111122223333 --query authorizationToken --output text --profile profile-name".execute().text repositories { maven { name 'my_repo' url 'https://my_domain-111122223333.codeartifact.region.amazonaws.com/maven/my_repo/' credentials { username 'aws' password codeartifactToken } } } }