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

求助:GitHub Actions中执行Maven Release Rollback失败如何解决?

解决Maven Release插件Rollback报错的方案

核心问题分析

你把release:prepare、release:perform、release:rollback放在同一条命令里执行本身就不合理。release:rollback是用来回滚失败的release:prepare操作的,只有当prepare或perform执行出错时才需要调用它。正常执行完perform后,release流程已经完成,此时没有可回滚的临时状态,自然会触发报错。

具体修复步骤

  • 拆分命令逻辑:在GitHub Actions里拆分步骤,只在release流程失败时执行rollback,用if: failure()控制执行时机:
    steps:
      - name: 执行Maven Release Prepare & Perform
        id: release
        run: ./mvnw -f ${{ inputs.pom-path }} -B clean release:prepare release:perform
      - name: 失败时执行回滚
        if: failure() && steps.release.outcome == 'failure'
        run: ./mvnw -f ${{ inputs.pom-path }} -B release:rollback
    
  • 检查仓库权限:确保GitHub Actions runner拥有仓库读写权限,在Actions设置里开启GITHUB_TOKEN的读写权限,或者使用具备足够权限的个人访问令牌(PAT)。
  • 验证POM配置:检查pom.xml里的SCM信息是否正确配置,示例如下:
    <scm>
      <connection>scm:git:https://github.com/你的用户名/你的仓库.git</connection>
      <developerConnection>scm:git:https://github.com/你的用户名/你的仓库.git</developerConnection>
      <url>https://github.com/你的用户名/你的仓库</url>
    </scm>
    
  • 清理残留文件:如果之前的release操作留下了pom.xml.releaseBackup、release.properties这类临时文件,执行prepare前先清理,避免干扰:
    run: |
      rm -f pom.xml.releaseBackup release.properties
      ./mvnw -f ${{ inputs.pom-path }} -B clean release:prepare release:perform
    
  • 升级插件版本:你用的3.0.0-M6是预览版,可能存在已知bug,建议升级到稳定版,比如3.1.0:
    <build>
      <plugins>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-release-plugin</artifactId>
          <version>3.1.0</version>
        </plugin>
      </plugins>
    </build>
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 23:05:17