CodeArtifactにMavenプロジェクトのライブラリを登録する設定

MavenプロジェクトのライブラリをCodeArtifactに登録するための手順メモ。

Mavenプロジェクトの作成方法、CodeArtifactのリポジトリの作成方法は作られている前提として割愛。

CodeArtifactの認証トークンを取得する

export CODEARTIFACT_AUTH_TOKEN=`aws codeartifact get-authorization-token --domain <CodeArtifactで設定したドメイン名> --domain-owner <AWSアカウントID> --region ap-northeast-1 --query authorizationToken --output text`

'~/.m2/settings.xml' に設定追加

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
                              http://maven.apache.org/xsd/settings-1.0.0.xsd">
  <servers>
    <server>
      <id>atsushi-kitazawa-myrepo</id>
      <username>aws</username>
      <password>${env.CODEARTIFACT_AUTH_TOKEN}</password>
    </server>
  </servers>
  <profiles>
    <profile>
      <id>atsushi-kitazawa-myrepo</id>
      <repositories>
        <repository>
          <id>atsushi-kitazawa-myrepo</id>
          <url>https://<ドメイン名>-<AWSアカウントID>.d.codeartifact.ap-northeast-1.amazonaws.com/maven/<リポジトリ名>/</url>
        </repository>
      </repositories>
      <pluginRepositories>
        <pluginRepository>
          <id>atsushi-kitazawa-myrepo</id>
          <url>https://<ドメイン名>-<AWSアカウントID>.d.codeartifact.ap-northeast-1.amazonaws.com/maven/<リポジトリ名>/</url>
        </pluginRepository>
      </pluginRepositories>
    </profile>
  </profiles>
  <activeProfiles>
    <activeProfile>codeartifact</activeProfile>
  </activeProfiles>
</settings>

Mavenプロジェクトの pom.xml に設定追加

</distributionManagement>
  <repository>
    <id>atsushi-kitazawa-myrepo</id>
    <url>https://<ドメイン名>-<AWSアカウントID>.d.codeartifact.ap-northeast-1.amazonaws.com/maven/<リポジトリ名>/</url>
  </repository>
</distributionManagement>

設定は以上。 設定に誤りがなければ mvn deploy で CodeArtifact にライブラリが登録されるはずです。