如何使用 curl 或 wget 从 GitLab 下载 maven 包?
Posted
技术标签:
【中文标题】如何使用 curl 或 wget 从 GitLab 下载 maven 包?【英文标题】:How can I download a maven package from GitLab with curl or wget? 【发布时间】:2021-11-30 03:09:05 【问题描述】:我的 Gitlab 包注册表中有一个 maven 包 (dummy
),我想使用 curl
或 wget
命令下载它。
按照this我试过了:
curl --user "username:DEPLOY_TOKEN" \
"https://gitlab.com/api/v4/projects/666/packages/maven/dummy/0.0.1-SNAPSHOT/dummy-0.0.1-SNAPSHOT.jar"
但我有:
"message":"404 Project Not Found"
项目ID正确。
如何下载maven包?
【问题讨论】:
我不了解 gitlab,但在 Nexus 或 Artifactory 等通常的 Maven 存储库中,SNAPSHOT 版本具有时间戳名称,如dummy-0.0.1-<somenumber>-1.jar
【参考方案1】:
要下载任何包,包括 maven 包,您需要使用Packages API。
按照这些文档,您需要使用:
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/:id/packages/:package_id"
假设描述中的666
是项目ID,那么它是:
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.com/api/v4/projects/666/packages/:package_id"
但您仍然需要找出包 ID。
如果不知道包id,可以先使用packages API列出项目中可用的包。
您使用的端点看起来像是来自Maven API documentation page,其中明确指出它不适合手动使用,因此不是推荐的方法。
如果您仍然需要使用该端点,(根据页面顶部的注释)您需要关注package registry authentication documentation。
这意味着如果您想使用部署令牌,您需要确保您的部署令牌具有read_package_registry
、write_package_registry
,或两者兼有。
您的 curl 命令将如下所示:
curl --header "Deploy-Token: <token>" "https://gitlab.com/api/v4/projects/666/packages/maven/dummy/0.0.1-SNAPSHOT/dummy-0.0.1-SNAPSHOT.jar"
【讨论】:
以上是关于如何使用 curl 或 wget 从 GitLab 下载 maven 包?的主要内容,如果未能解决你的问题,请参考以下文章