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

如何使用Maven Release Plugin发布Hotfix版本并解决无SNAPSHOT报错

报错原因

Maven Release Plugin的release:prepare阶段默认要求当前项目的版本必须为SNAPSHOT后缀,你直接基于1.2.3正式版的tag代码执行发布,此时pom内的版本号为不带SNAPSHOT的正式版,不符合插件前置校验要求,就会触发该报错。

版本命名规则建议

你当前使用的版本规则完全符合Maven版本号排序逻辑,也可调整为主版本号.次版本号.修订版本号.补丁号的四段式(例如1.2.3.1代表1.2.3的第一个Hotfix),两种方式均可,只需团队内部统一即可。

具体操作步骤

整个操作全程在独立的Hotfix分支执行,完全不会修改主线的1.2.4-SNAPSHOT版本配置:

  1. 基于1.2.3正式版tag创建独立Hotfix分支
git checkout -b hotfix/1.2.3-1 tags/1.2.3
  1. 将Hotfix分支的版本号修改为符合要求的SNAPSHOT版本,使用versions插件避免手动修改pom出错:
mvn versions:set -DnewVersion=1.2.3-1-SNAPSHOT

修改完成后提交改动到Hotfix分支:

git add pom.xml **/pom.xml
git commit -m "调整Hotfix分支版本为1.2.3-1-SNAPSHOT"
  1. 执行标准发布流程,通过参数指定发布版本号和标签名,无需交互式输入:
# 多模块项目可额外添加-DautoVersionSubmodules=true参数自动同步子模块版本
mvn release:prepare -DreleaseVersion=1.2.3-1 -DdevelopmentVersion=1.2.3-2-SNAPSHOT -Dtag=1.2.3-1
mvn release:perform

参数说明:

  • -DreleaseVersion=1.2.3-1:指定本次要发布的正式Hotfix版本号
  • -DdevelopmentVersion=1.2.3-2-SNAPSHOT:指定Hotfix分支后续迭代的SNAPSHOT版本,若该分支发布完成后无需保留,该值可随意设置
  • -Dtag=1.2.3-1:指定本次发布生成的Git标签名
  1. 发布完成后如果需要将Hotfix的改动同步到主线,只需将hotfix/1.2.3-1分支合并到主线即可,不会影响主线原有的1.2.4-SNAPSHOT版本配置。
可选简化方案

如果Hotfix改动很小,不需要严格走Release Plugin的全流程,可以直接手动调整版本号后部署,省去SNAPSHOT校验环节:

  1. 同样先拉取Hotfix分支,修改pom版本号为1.2.3-1
  2. 执行mvn clean deploy直接发布
  3. 手动打Git标签git tag 1.2.3-1并推送到远程仓库即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 20:27:04