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

向AWS CodeArtifact发布SNAPSHOT Jar返回400错误请求

AWS CodeArtifact发布SNAPSHOT版本Gradle报400、制品Unfinished问题排查方案

一、检查CodeArtifact仓库类型配置

CodeArtifact的仓库分为快照仓库(Snapshot)和发布仓库(Release),默认创建的仓库是发布仓库,不允许上传SNAPSHOT版本。你需要确认当前使用的仓库配置:

  • 登录AWS控制台进入CodeArtifact服务,找到目标仓库查看仓库类型
  • 如果是Release类型,要么切换为Snapshot类型,要么单独创建一个快照仓库专门用于SNAPSHOT版本发布
  • 注意:同一个仓库无法同时支持快照和正式版,必须分开配置

二、核对Gradle发布配置的仓库地址

快照版本需要指向CodeArtifact的快照仓库地址,正式版对应发布仓库地址。检查你的build.gradle(或build.gradle.kts)配置:

publishing {
    repositories {
        maven {
            url = uri("https://<domain>-<accountId>.d.codeartifact.<region>.amazonaws.com/maven/<snapshot-repo-name>/")
            credentials {
                username = awsAccessKeyId
                password = awsSecretAccessKey
            }
        }
    }
    publications {
        mavenJava(MavenPublication) {
            from components.java
        }
    }
}

确保url指向的是快照仓库的地址,混用仓库地址会直接导致SNAPSHOT版本上传被拒绝,返回400错误。

三、检查Gradle Maven发布插件版本与配置

旧版本的Gradle Maven发布插件在处理SNAPSHOT元数据时可能存在兼容性问题,建议升级到最新稳定版:

plugins {
    id 'maven-publish' version '3.1.2' // 使用最新稳定版
    id 'java'
}

如果有自定义的Maven元数据配置,建议先移除,用默认逻辑测试——自定义配置可能导致元数据格式不符合CodeArtifact要求,进而触发400错误。

四、排查AWS权限配置

检查用于发布的IAM用户/角色是否拥有codeartifact:PutPackageVersion和codeartifact:UploadPackageAsset权限,且权限覆盖快照版本的资源路径:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "codeartifact:PutPackageVersion",
                "codeartifact:UploadPackageAsset"
            ],
            "Resource": "arn:aws:codeartifact:<region>:<accountId>:package/<domain>/<repo>/maven/<package-name>/1.0.0-SNAPSHOT"
        }
    ]
}

权限策略如果仅针对正式版路径,会导致SNAPSHOT版本上传被拦截。

五、查看详细日志定位问题

执行Gradle publish任务时添加--info参数,获取完整的请求和响应日志:

./gradlew publish --info

重点关注maven-metadata.xml等元数据文件的上传过程——400错误通常是因为请求不符合CodeArtifact的规范,日志会明确显示具体错误原因,比如元数据格式错误、仓库不支持快照等。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 06:22:45