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

如何在GitHub Actions构建流程中下载已发布的GitHub包?

解决GitHub CI中下载同组织仓库已发布包的方法

针对你需要在CI流程中下载同组织下另一仓库已发布jar包并打包进Docker镜像的需求,以下两种方案可直接实现:

一、使用GitHub Action下载

1. 下载GitHub Releases中的jar资产

如果目标jar包是作为Releases附件发布的,可使用第三方Action快速下载:

- name: 下载目标仓库的Releases jar包
  uses: dawidd6/action-download-release-asset@v2
  with:
    owner: 你的组织名称
    repo: 目标仓库名称
    tag: v1.0.0 # 替换为实际的发布版本tag
    asset: app.jar # 替换为要下载的jar文件名
    path: ./downloads # 下载后存放的路径,可按需调整

2. 下载GitHub Packages中的Maven jar包

如果jar包发布在GitHub Packages的Maven仓库中,可通过Maven命令直接下载(仅执行下载操作,无需本地安装依赖):

- name: 下载GitHub Packages中的jar包
  run: |
    mvn dependency:copy \
      -Dartifact=你的组织ID:artifactId:版本号:jar \
      -DoutputDirectory=./downloads
  env:
    GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

二、使用curl命令直接下载

1. 下载GitHub Releases中的jar资产

无需第三方Action时,可通过GitHub API配合curl实现:

# 第一步:获取指定版本jar包的下载链接
ASSET_URL=$(curl -s \
  -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \
  https://api.github.com/repos/你的组织名/目标仓库名/releases/tags/v1.0.0 \
  | jq -r '.assets[] | select(.name == "app.jar") | .browser_download_url')

# 第二步:下载jar包到指定目录
curl -L -o ./downloads/app.jar $ASSET_URL

注:需确保CI环境已安装jq工具,未安装可提前添加apt-get install jq之类的安装步骤。

2. 下载GitHub Packages中的Maven jar包

直接通过Packages的专属链接获取:

curl -L \
  -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \
  -o ./downloads/app.jar \
  https://maven.pkg.github.com/你的组织名/目标仓库名/你的包路径/版本号/文件名.jar

注意事项

  • 若目标仓库为私有仓库,需确保GITHUB_TOKEN拥有该仓库的读取权限;权限不足时,可使用个人访问令牌(PAT)并存储在仓库Secrets中。
  • 下载完成后,在Docker构建阶段将./downloads目录下的jar包复制到镜像内即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 22:45:52