本地环境如何管理CodeArtifact AUTH令牌,免除频繁手动刷新操作
解决方案
可以通过.m2/settings.xml配置实现CodeArtifact令牌自动续期,无需手动刷新,具体操作如下:
前置依赖
- 本地已安装AWS CLI,且已配置具备CodeArtifact访问权限的AWS身份凭证
- Maven版本 >= 3.3.1(支持
${cmd}命令注入语法)
配置步骤
1. 配置server节点
打开~/.m2/settings.xml(Windows系统为C:\Users\你的用户名\.m2\settings.xml),在<servers>块中添加如下配置:
<server> <id>codeartifact-repo</id> <!-- 此处id要和后续配置的仓库id保持一致 --> <username>aws</username> <password>${cmd:aws codeartifact get-authorization-token --domain 你的CodeArtifact域名 --domain-owner 你的AWS账号ID --region 仓库所属区域 --query authorizationToken --output text}</password> </server>
2. 配置仓库地址
在settings.xml的<repositories>块(或者<mirrors>块,根据你自己的使用习惯选择)中配置CodeArtifact仓库地址,注意仓库id要和上一步server的id完全匹配:
<repository> <id>codeartifact-repo</id> <url>你的CodeArtifact仓库地址</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>true</enabled> </snapshots> </repository>
说明
- 配置完成后Maven会在每次需要访问CodeArtifact仓库时,自动调用AWS CLI命令获取最新的授权令牌,无需手动续期
- 确保你的AWS身份凭证拥有
codeartifact:GetAuthorizationToken、codeartifact:ReadFromRepository的权限,否则会出现令牌获取失败的问题
内容的提问来源于stack exchange,提问作者G. Colaianni
相关产品推荐
相关产品推荐

