Dependabot无法找到GAR中Maven包(404错误)求助
背景信息
已完成Dependabot认证,能读取package.xml,但查找私有仓库JAR时返回404,公仓依赖正常。
现有Dependabot配置
version: 2 registries: artifact-registry: type: maven-repository url: "https://{region}-maven.pkg.dev/{project}/{repo}/" username: "_json_key_base64" password: ${{ secrets.ARTIFACT_REGISTRY_READER_B64 }} maven-central: type: maven-repository url: "https://repo1.maven.org/maven2/" updates: - package-ecosystem: "maven" # See documentation for possible values directory: "/" # Location of package manifests schedule: interval: "daily" registries: - artifact-registry - maven-central
错误日志
404 https://{region}-maven.pkg.dev:443/{project}/{repo}/com/{org}/{repo}/1.24-SNAPSHOT/{repo}-1.24-SNAPSHOT.jar
直接访问链接结果
{ "error": "Requested entity was not found." }
可能原因及解决方法
快照版本文件名不匹配:SNAPSHOT包发布时通常会生成带时间戳的文件名(如
repo-1.24-20240520.123456-1.jar),而Dependabot请求的是不带时间戳的标准SNAPSHOT文件名,导致找不到文件。
解决:检查Artifact Registry中该版本的实际JAR文件名,确保仓库中的maven-metadata.xml正确指向可用的快照文件,Dependabot会依据元数据获取正确的JAR路径。权限范围不足:虽然认证成功能读取
package.xml,但当前密钥可能没有该JAR文件的读取权限,或权限仅覆盖仓库部分路径。
解决:确认服务账号拥有artifactregistry.repositories.downloadArtifacts权限,且权限范围包含该JAR所在的完整路径。快照元数据未同步:SNAPSHOT版本的
maven-metadata.xml未正确更新,导致Dependabot无法获取有效JAR路径。
解决:检查对应路径下的maven-metadata.xml是否存在且内容正确,重新发布SNAPSHOT包以生成正确元数据。仓库URL配置错误:URL中的
{region}、{project}、{repo}占位符未替换为实际值,或存在拼写错误,导致路径指向错误。
解决:确认URL与Artifact Registry的实际仓库地址完全匹配,替换所有占位符为真实信息。
内容的提问来源于stack exchange,提问作者stellenberger

