You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AWS CodeArtifact Maven部署出现401未授权错误求助

解决AWS CodeArtifact Maven上传401未授权错误

核心问题排查与修复步骤

1. 修复授权令牌环境变量的设置错误

你当前的export命令用了单引号,导致CODEARTIFACT_AUTH_TOKEN变量存储的是命令字符串,而不是实际执行命令生成的令牌。正确写法需用$()包裹命令,让Shell执行并返回结果:

export CODEARTIFACT_AUTH_TOKEN=$(aws codeartifact get-authorization-token --domain uat-myco --domain-owner domainownerid --region us-east-1 --query authorizationToken --output text)

2. 解决AWS凭证无效问题(UnrecognizedClientException)

直接执行get-authorization-token返回的UnrecognizedClientException是关键线索,说明本地AWS凭证无效:

  • 检查~/.aws/credentials和~/.aws/config文件,确认里面的aws_access_key_id和aws_secret_access_key属于domainownerid账号且未过期
  • 若使用临时凭证,需确保AWS_SESSION_TOKEN环境变量已正确设置
  • 执行aws sts get-caller-identity验证当前凭证,返回正确账号ID则凭证有效,否则重新配置AWS凭证

3. 调整Maven镜像配置,避免全局镜像拦截官方插件

你当前的Maven镜像设置了<mirrorOf>*</mirrorOf>,导致所有依赖(包括Maven官方插件)都尝试从CodeArtifact拉取。若CodeArtifact未代理Maven Central,就会出现插件找不到的错误:

  • 方案一:在AWS控制台给CodeArtifact仓库添加Maven Central外部连接
  • 方案二:修改镜像规则,只让业务构件走CodeArtifact,官方插件走默认仓库:
    <mirrors>
      <mirror>
        <id>uat-myco-uat-myco-repository</id>
        <name>uat-myco-uat-myco-repository</name>
        <url>https://uat-myco-domainownerid.d.codeartifact.us-east-1.amazonaws.com/maven/uat-myco-repository/</url>
        <mirrorOf>com.myco*</mirrorOf> <!-- 仅匹配你的业务groupId前缀 -->
      </mirror>
    </mirrors>
    

4. 修正IAM权限配置

你当前的仓库策略仅给root账号授权,需确保实际使用的IAM用户/角色拥有对应权限:

  • 给当前IAM用户添加如下权限策略:
    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                    "codeartifact:GetAuthorizationToken",
                    "codeartifact:PublishPackageVersion",
                    "codeartifact:ReadFromRepository"
                ],
                "Resource": "arn:aws:codeartifact:us-east-1:domainownerid:domain/uat-myco/repository/uat-myco-repository"
            }
        ]
    }
    

5. 清理Maven本地缓存并重新部署

之前的失败请求已被Maven缓存,执行以下命令强制更新并重新部署:

mvn clean deploy:deploy-file -U \
-DgroupId=myco-osgi-bom          \
-DartifactId=myco-osgi-bom       \
-Dversion=1.0                  \
-Dfile=/Users/user/.m2/repository/com/myco/integration/myco-osgi-bom/1.0/myco-osgi-bom-1.0.pom   \
-Dpackaging=xml                \
-DrepositoryId=uat-myco-uat-myco-repository    \
-Durl=https://uat-myco-domainownerid.d.codeartifact.us-east-1.amazonaws.com/maven/uat-myco-repository/

内容的提问来源于stack exchange,提问作者Richard

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 05:45:07