🦦

CodeArtifactにjarをアップロードしてみる

2024/11/17に公開

こんにちは、Kopherです。
ソースコードもない第3者提供のjarをCodeArtifactにアップロードするタスクで得た経験を共有します。

Terraformを用いてDomainとRepositoryを構成する

今回はアップストリームと外部接続用Repositoryを使用します。

resource "aws_codeartifact_domain" "kopher" {
  domain = "kopher"
}

resource "aws_codeartifact_repository" "maven" {
  repository = "maven"
  domain     = aws_codeartifact_domain.kopher.domain

  external_connections {
    external_connection_name = "public:maven-central"
  }
}

resource "aws_codeartifact_repository" "kopher" {
  repository = "kopher"
  domain     = aws_codeartifact_domain.kopher.domain

  upstream {
    repository_name = aws_codeartifact_repository.maven.repository
  }
}

kopherリポジトリがアップストリームになりmavenリポジトリが外部接続用リポジトリになります。

aws提供
aws提供のイメージ

mavenに認証トークンを設定しておく

  1. settings.xmlを修正
> vi ~/.m2/settings.xml
  1. 以下の内容を追記します。
<settings>
    <servers>
        <server>
            <id>kopher</id>
            <username>aws</username>
            <password>${env.CODEARTIFACT_AUTH_TOKEN}</password>
        </server>
    </servers>
</settings>
  1. awsにログイン
export AWS_PROFILE=kopher
aws sso login
  1. エンドポイント取得
aws codeartifact get-repository-endpoint --domain kopher --repository kopher --format maven

レスポンス

url 'https://kopher-111122223333.d.codeartifact.us-west-2.amazonaws.com/maven/kopher/'
  1. トークンを設定する
export CODEARTIFACT_AUTH_TOKEN=`aws codeartifact get-authorization-token --domain kopher --domain-owner 111122223333 --query authorizationToken --output text`

アップロードする

対象のjarをCodeArtifactにアップロードする。

mvn deploy:deploy-file -DgroupId=jp.example  \
-DartifactId=example-java  \
-Dversion=1.0.0  \
-Dfile=./example-java-1.0.0.jar  \
-Dpackaging=jar  \
-DrepositoryId=kopher  \
-Durl=https://kopher-111122223333.d.codeartifact.us-west-2.amazonaws.com/maven/kopher/

CodeArtifactに接続してkopherリポジトリを確認し問題なくアップロードされたか確認する。

お疲れ様でした。以上になります!

参考資料

https://docs.aws.amazon.com/ja_jp/codeartifact/latest/ug/maven-mvn.html

Discussion