Gradle CodeArtifact で使用する - CodeArtifact

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Gradle CodeArtifact で使用する

「環境変数 を使用して CodeArtifact 認証トークンを渡す」で説明されているように、環境変数に認証トークンを取得したら、以下の手順に従って Maven パッケージを から消費し、リポジトリに CodeArtifact新しいパッケージを発行します。 環境変数を使用して認証トークンを渡す

依存関係の取得

Gradle ビルド CodeArtifact で から依存関係を取得するには、次の手順を使用します。

Gradle ビルド CodeArtifact で から依存関係を取得するには
  1. まだ作成していない場合は、「」の手順に従って、環境変数に CodeArtifact 認証トークンを作成して保存します環境変数を使用して認証トークンを渡す

  2. プロジェクトファイル build.gradlerepositories セクションに maven セクションを追加します。

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

    前の例urlの は、 CodeArtifact リポジトリのエンドポイントです。Gradle は、エンドポイントを使用してリポジトリに接続します。サンプルでは、my_domain はドメインの名前、111122223333 はドメインの所有者の ID 、そして my_repo はリポジトリの名前です。get-repository-endpoint AWS CLI コマンドを使用して、リポジトリのエンドポイントを取得できます。

    例えば、 という名前のリポジトリがある場合 my_repo という名前のドメイン内 my_domainの場合、コマンドは次のとおりです。

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

    get-repository-endpoint コマンドはリポジトリエンドポイントを返します。

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

    前の例のcredentialsオブジェクトには、Gradle が への認証に使用するステップ 1 で作成した CodeArtifact 認証トークンが含まれています CodeArtifact。

    注記

    デュアルスタックエンドポイントを使用するには、codeartifact.region.on.awsエンドポイントを使用します。

  3. (オプション) - CodeArtifact リポジトリをプロジェクトの依存関係の唯一のソースとして使用するには、 repositoriesから の他のセクションを削除しますbuild.gradle。複数のリポジトリがある場合、Gradle はリストされている順序で各リポジトリの依存関係を検索します。

  4. リポジトリを構成したら、プロジェクトの依存関係を標準の Gradle 構文で dependencies セクションに追加できます。

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

プラグインの取得

デフォルトでは、Gradle はパブリック Gradle Plugin Portal からプラグインを解決します。 CodeArtifact リポジトリからプラグインをプルするには、次の手順を使用します。

CodeArtifact リポジトリからプラグインをプルするには
  1. まだ作成していない場合は、「」の手順に従って、環境変数に CodeArtifact 認証トークンを作成して保存します環境変数を使用して認証トークンを渡す

  2. pluginManagement ブロックを settings.gradle ファイルに追加します。pluginManagement ブロックは、settings.gradle の他のステートメントの前に置く必要があります。次のスニペットを参照してください。

    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 } } } }

これにより、Gradle は指定したリポジトリからプラグインを解決します。一般的に必要な Gradle プラグインをビルドで使用できるように、リポジトリには Gradle Plugin Portal への外部接続を持つ上流リポジトリが必要です (例: gradle-plugins-store) 。詳細については、Gradle ドキュメント を参照してください。

アーティファクトの公開

このセクションでは、Gradle で構築された Java ライブラリをリポジトリに CodeArtifact発行する方法について説明します。

まず、maven-publish プラグインをプロジェクトの build.gradle ファイルの plugins セクションに追加します。

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

次に、publishing セクションをプロジェクト build.gradle ファイルに追加します。

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 } } } }

maven-publish プラグインはgroupIdpublishingセクションでversion指定された、artifactId、および に基づいてPOMファイルを生成します。

これらの build.gradle への変更が完了したら、次のコマンドを実行してプロジェクトをビルドし、それをリポジトリにアップロードします。

./gradlew publish

list-package-versionsを使用して、パッケージが正常に発行されたことを確認します。

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

サンプル出力:

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

詳細については、Gradle ウェブサイトで以下のトピックを参照してください。

IntelliJ で Gradle ビルドを実行する IDEA

IntelliJ で Gradle ビルドを実行して、 から依存関係をIDEAプルできます CodeArtifact。で認証するには CodeArtifact、Gradle に CodeArtifact 認証トークンを提供する必要があります。認証トークンを提供する方法は 3 つあります。

  • 方法 1: gradle.properties に認証トークンを保存する。この方法は、gradle.properties ファイルのコンテンツに上書きまたは追加できる場合に使用します。

  • 方法 2: 認証トークンを別のファイルに保存する。この方法は、gradle.properties ファイルを修正したくない場合に使用します。

  • 方法 3: awsbuild.gradle のインラインスクリプトとして実行して、実行ごとに新しい認証トークンを生成する。この方法は、実行ごとに Gradle スクリプトが新しいトークンを取得するようにしたい場合に使用します。トークンはファイルシステムに保存されません。

Token stored in gradle.properties
方法 1: gradle.properties に認証トークンを保存する。
注記

この例は GRADLE_USER_HOME にある gradle.properties ファイルを示します。

  1. 次のスニペットを使用して build.gradle ファイルを更新する:

    repositories { maven { url 'https://my_domain-111122223333.d.codeartifact.region.amazonaws.com/maven/my_repo/' credentials { username "aws" password "$codeartifactToken" } } }
  2. からプラグインを取得するには CodeArtifact、 pluginManagement ブロックを settings.gradle ファイルに追加します。pluginManagement ブロックは、settings.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. CodeArtifact 認証トークンを取得します。

    export CODEARTIFACT_AUTH_TOKEN=`aws codeartifact get-authorization-token --domain my_domain --domain-owner 111122223333 --query authorizationToken --output text --profile profile-name`
  4. gradle.properties ファイルに認証トークンを書き込む:

    echo "codeartifactToken=$CODEARTIFACT_AUTH_TOKEN" > ~/.gradle/gradle.properties
Token stored in separate file
方法 2: 認証トークンを別のファイルに保存する
  1. 次のスニペットを使用して build.gradle ファイルを更新する:

    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. からプラグインを取得するには CodeArtifact、 pluginManagement ブロックを settings.gradle ファイルに追加します。pluginManagement ブロックは、settings.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. CodeArtifact 認証トークンを取得します。

    export CODEARTIFACT_AUTH_TOKEN=`aws codeartifact get-authorization-token --domain my_domain --domain-owner 111122223333 --query authorizationToken --output text --profile profile-name`
  4. build.gradle ファイルで指定したファイルに認証トークンを書き込みます。

    echo "codeartifactToken=$CODEARTIFACT_AUTH_TOKEN" > file
Token generated for each run in build.gradle
方法 3: awsbuild.gradle のインラインスクリプトとして実行して、実行ごとに新しい認証トークンを生成する。
  1. 次のスニペットを使用して build.gradle ファイルを更新する:

    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. からプラグインを取得するには CodeArtifact、 pluginManagement ブロックを settings.gradle ファイルに追加します。pluginManagement ブロックは、settings.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 } } } }