🦦
CodeArtifactにjarをアップロードしてみる
こんにちは、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提供のイメージ
mavenに認証トークンを設定しておく
-
settings.xml
を修正
> vi ~/.m2/settings.xml
- 以下の内容を追記します。
<settings>
<servers>
<server>
<id>kopher</id>
<username>aws</username>
<password>${env.CODEARTIFACT_AUTH_TOKEN}</password>
</server>
</servers>
</settings>
- awsにログイン
export AWS_PROFILE=kopher
aws sso login
- エンドポイント取得
aws codeartifact get-repository-endpoint --domain kopher --repository kopher --format maven
レスポンス
url 'https://kopher-111122223333.d.codeartifact.us-west-2.amazonaws.com/maven/kopher/'
- トークンを設定する
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リポジトリを確認し問題なくアップロードされたか確認する。
お疲れ様でした。以上になります!
参考資料
Discussion