mvn CodeArtifact で使用する - CodeArtifact

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

mvn CodeArtifact で使用する

Maven ビルドを実行するには、mvn コマンドを使用してください。このセクションでは、 CodeArtifact リポジトリを使用するmvnように を設定する方法を示します。

依存関係の取得

CodeArtifact リポジトリから依存関係を取得するmvnように を設定するには、Maven 設定ファイル、settings.xml、およびオプションでプロジェクトの を編集する必要がありますPOM。

  1. まだ作成していない場合は、「」で説明されている環境変数に CodeArtifact 認証トークンを作成して保存環境変数を使用して認証トークンを渡すし、 CodeArtifact リポジトリへの認証を設定します。

  2. settings.xml通常 で見つかります~/.m2/settings.xml) で、Maven がトークンをHTTPリクエストで渡すように、CODEARTIFACT_AUTH_TOKEN環境変数を参照する<servers>セクションを追加します。

    <settings> ... <servers> <server> <id>codeartifact</id> <username>aws</username> <password>${env.CODEARTIFACT_AUTH_TOKEN}</password> </server> </servers> ... </settings>
  3. CodeArtifact リポジトリのURLエンドポイントを <repository>要素に追加します。これは、 settings.xmlまたはプロジェクトの POM ファイルで行うことができます。

    コマンドを使用して、リポジトリのエンドポイントを取得できますget-repository-endpoint AWS CLI 。

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

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

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

    url 'https://my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/maven/my_repo/'
    注記

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

    settings.xml へのリポジトリエンドポイントの追加は以下のとおりです。

    <settings> ... <profiles> <profile> <id>default</id> <repositories> <repository> <id>codeartifact</id> <url>https://my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/maven/my_repo/</url> </repository> </repositories> </profile> </profiles> <activeProfiles> <activeProfile>default</activeProfile> </activeProfiles> ... </settings>

    または、 <repositories>セクションをプロジェクトPOMファイルに追加して、 CodeArtifact そのプロジェクトにのみ使用できます。

    <project> ... <repositories> <repository> <id>codeartifact</id> <name>codeartifact</name> <url>https://my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/maven/my_repo/</url> </repository> </repositories> ... </project>
重要

<id> 要素にある任意の値を使用できますが、<server> および <repository> 要素の両方で同じでなければなりません。これにより、指定された認証情報を へのリクエストに含めることができます CodeArtifact。

これらの設定変更を行った後、プロジェクトを構築できます。

mvn compile

Maven は、コンソールにダウンロードするすべての依存関係URLをすべてログに記録します。

[INFO] ------------------< com.example.example:myapp >------------------- [INFO] Building myapp 1.0 [INFO] --------------------------------[ jar ]--------------------------------- Downloading from codeartifact: https://<domain>.d.codeartifact.us-west-2.amazonaws.com/maven/myrepo/commons-cli/commons-cli/1.4/commons-cli-1.4.pom Downloaded from codeartifact: https://<domain>.d.codeartifact.us-west-2.amazonaws.com/maven/myrepo/commons-cli/commons-cli/1.4/commons-cli-1.4.pom (11 kB at 3.9 kB/s) Downloading from codeartifact: https://<domain>.d.codeartifact.us-west-2.amazonaws.com/maven/myrepo/org/apache/commons/commons-parent/42/commons-parent-42.pom Downloading from codeartifact: https://<domain>.d.codeartifact.us-west-2.amazonaws.com/maven/myrepo/org/apache/commons/commons-parent/42/commons-parent-42.pom Downloaded from codeartifact: https://<domain>.d.codeartifact.us-west-2.amazonaws.com/maven/myrepo/org/apache/commons/commons-parent/42/commons-parent-42.pom (68 kB at 123 kB/s) Downloading from codeartifact: https://<domain>.d.codeartifact.us-west-2.amazonaws.com/maven/myrepo/commons-cli/commons-cli/1.4/commons-cli-1.4.jar Downloaded from codeartifact: https://<domain>.d.codeartifact.us-west-2.amazonaws.com/maven/myrepo/commons-cli/commons-cli/1.4/commons-cli-1.4.jar (54 kB at 134 kB/s)

アーティファクトの公開

Maven アーティファクトを CodeArtifact リポジトリmvnに発行するには、 ~/.m2/settings.xmlおよび プロジェクト を編集する必要がありますPOM。

  1. まだ作成していない場合は、「」で説明されている環境変数に CodeArtifact 認証トークンを作成して保存環境変数を使用して認証トークンを渡すし、 CodeArtifact リポジトリへの認証を設定します。

  2. Maven がHTTPリクエストでトークンを渡すように、CODEARTIFACT_AUTH_TOKEN環境変数settings.xmlを参照して <servers> セクションを に追加します。

    <settings> ... <servers> <server> <id>codeartifact</id> <username>aws</username> <password>${env.CODEARTIFACT_AUTH_TOKEN}</password> </server> </servers> ... </settings>
  3. <distributionManagement> セクションをプロジェクトの pom.xml に追加します。

    <project> ... <distributionManagement> <repository> <id>codeartifact</id> <name>codeartifact</name> <url>https://my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/maven/my_repo/</url> </repository> </distributionManagement> ... </project>

これらの設定変更を行った後、プロジェクトを構築して指定したリポジトリに公開できます。

mvn deploy

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

サンプル出力:

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

サードパーティのアーティファクト

サードパーティーの Maven アーティファクトは、 を使用して CodeArtifact リポジトリに発行できますmvn deploy:deploy-file。これは、アーティファクトを発行し、JARファイルのみを持ち、パッケージソースコードまたはPOMファイルにアクセスできないユーザーに役立ちます。

mvn deploy:deploy-file コマンドは、コマンドラインで渡された情報に基づいてPOMファイルを生成します。

サードパーティの Maven アーティファクトを公開する
  1. まだ作成していない場合は、「」で説明されている環境変数に CodeArtifact 認証トークンを作成して保存環境変数を使用して認証トークンを渡すし、 CodeArtifact リポジトリへの認証を設定します。

  2. 次のコンテンツを含む ~/.m2/settings.xml ファイルを作成します。

    <settings> <servers> <server> <id>codeartifact</id> <username>aws</username> <password>${env.CODEARTIFACT_AUTH_TOKEN}</password> </server> </servers> </settings>
  3. mvn deploy:deploy-file コマンドを実行します。

    mvn deploy:deploy-file -DgroupId=commons-cli \ -DartifactId=commons-cli \ -Dversion=1.4 \ -Dfile=./commons-cli-1.4.jar \ -Dpackaging=jar \ -DrepositoryId=codeartifact \ -Durl=https://my_domain-111122223333.d.codeartifact.region.amazonaws.com/maven/repo-name/
    注記

    上記の例は commons-cli 1.4 を公開しています。groupId、artifactIDバージョン、およびファイル引数を変更して、別の を発行しますJAR。

これらの手順は、Apache Maven ドキュメント からリモートリポジトリJARsにサードパーティをデプロイするためのガイドの例に基づいています。

Maven 依存関係のダウンロードを CodeArtifact リポジトリに制限する

設定されたリポジトリからパッケージを取得できない場合、デフォルトでmvnコマンドでMaven Centralからパッケージを取得します。に mirrors要素を追加してsettings.xml、 CodeArtifact リポジトリmvnを常に使用します。

<settings> ... <mirrors> <mirror> <id>central-mirror</id> <name>CodeArtifact Maven Central mirror</name> <url>https://my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/maven/my_repo/</url> <mirrorOf>central</mirrorOf> </mirror> </mirrors> ... </settings>

mirrors要素を追加すると、settings.xmlまたはpom.xmlpluginRepository要素が含まれる必要があります。次の例では、 CodeArtifact リポジトリからアプリケーションの依存関係と Maven プラグインを取得します。

<settings> ... <profiles> <profile> <pluginRepositories> <pluginRepository> <id>codeartifact</id> <name>CodeArtifact Plugins</name> <url>https://my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/maven/my_repo/</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>true</enabled> </snapshots> </pluginRepository> </pluginRepositories> </profile> </profiles> ... </settings>

次の例では、 CodeArtifact リポジトリからアプリケーションの依存関係を取得し、Maven Central から Maven プラグインを取得します。

<profiles> <profile> <id>default</id> ... <pluginRepositories> <pluginRepository> <id>central-plugins</id> <name>Central Plugins</name> <url>https://repo.maven.apache.org/maven2/</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>true</enabled> </snapshots> </pluginRepository> </pluginRepositories> .... </profile> </profiles>

Apache Maven プロジェクト情報

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