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

如何使用curl或wget从GitLab Package Registry下载Maven包

问题根因

你遇到的404报错通常由两个原因导致:

  • 未使用Maven包专属的API规则,通用包的下载逻辑不适用于Maven类型包
  • GitLab出于安全考虑,无权限访问的项目也会返回404错误(而非403),避免项目存在性泄露,认证信息错误也会触发该报错

正确下载步骤

1. 配置正确的认证信息

  • 如果你使用**部署令牌(Deploy Token)**认证:curl的用户参数固定格式为deploy_token:<你的部署令牌值>,注意用户名固定为deploy_token,不要填个人账号用户名,同时部署令牌需要提前分配read_package_registry权限
  • 如果你使用**个人访问令牌(PAT)**认证:用户参数格式为<你的GitLab用户名>:<你的PAT值>,PAT需要勾选read_api或read_package_registry权限

2. 执行curl下载命令

按照如下格式替换占位符即可,注意groupId需要按照.分割成路径层级,比如groupId为com.mycompany就对应路径com/mycompany:

curl --user "deploy_token:替换为你的部署令牌" \
     "https://gitlab.com/api/v4/projects/替换为你的项目ID/packages/maven/替换为groupId路径/替换为artifactId/替换为版本号/替换为构件完整文件名" \
     -o dummy-0.0.1-SNAPSHOT.jar

如果你的dummy包没有前缀groupId,直接使用如下命令即可:

curl --user "deploy_token:替换为你的部署令牌" \
     "https://gitlab.com/api/v4/projects/666/packages/maven/dummy/0.0.1-SNAPSHOT/dummy-0.0.1-SNAPSHOT.jar" \
     -o dummy-0.0.1-SNAPSHOT.jar

3. 异常排查

如果执行后仍然报错,按如下顺序核对:

  • 确认项目的Package Registry功能已开启:进入项目设置→通用→可见性、项目功能、权限→仓库分类下勾选「Packages」
  • 确认包的版本号、文件名完全匹配GitLab Package Registry页面显示的信息
  • 如果你使用的是私有部署的GitLab实例,将链接中的gitlab.com替换为你的实例域名即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 20:15:05