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

如何使用GitHub Release版本号作为JAR版本发布到GitHub Packages

问题根因

Maven打包、发布时默认读取pom.xml中硬编码的<version>配置值,你的GitHub Action流程没有在构建前将Release的标签版本同步到pom.xml中,所以最终发布的包版本还是本地写死的0.0.1-SNAPSHOT。

解决方案

核心思路是在GitHub Action的构建流程中,自动提取Release标签的版本号,动态替换pom.xml中的版本配置后再执行发布操作,具体步骤如下:

步骤1:提取Release版本号

GitHub Release触发Action时,标签值会存储在GITHUB_REF_NAME环境变量中,你可以通过如下命令去掉标签前缀的v,拿到纯版本号:

- name: 提取Release版本号
  id: get_version
  run: echo "VERSION=${GITHUB_REF_NAME#v}" >> $GITHUB_OUTPUT

后续步骤可以通过${{ steps.get_version.outputs.VERSION }}调用提取到的版本号,比如标签为v1.0.0时,拿到的版本号就是1.0.0。

步骤2:动态更新pom.xml版本

使用Maven自带的versions插件,无需手动修改代码即可替换pom.xml中的版本配置:

- name: 更新项目版本号
  run: mvn versions:set -DnewVersion=${{ steps.get_version.outputs.VERSION }}

步骤3:执行打包发布

后续执行你原本的Maven打包、发布命令即可,此时构建出的JAR包版本就会和Release标签版本完全一致。

额外注意事项

  • 本地开发环境的pom.xml无需手动修改版本号,保持0.0.1-SNAPSHOT即可,所有版本替换操作都在CI流程中自动完成,不会影响日常开发
  • 如果你的Release标签没有v前缀,直接去掉版本号提取步骤中的#v参数,直接使用${GITHUB_REF_NAME}作为版本号即可
  • 如果你不希望versions插件生成pom.xml.versionsBackup备份文件,可以在执行versions:set命令时添加-DgenerateBackupPoms=false参数

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 15:45:08