求助: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
相关产品推荐
相关产品推荐

