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

从Maven迁移至Gradle:如何复刻maven branch与release工作流?

复刻Maven Branch/Release工作流的Gradle方案(基于Nebula Release Plugin)

一、创建Release分支并更新主分支版本

Maven的mvn branch命令本质是完成两件事:创建发布分支、将主分支版本升级到下一个SNAPSHOT。Nebula没有一键等价命令,但可以分两步手动实现完全一致的效果:

  1. 创建并初始化Release分支

    • 切换到main分支并拉取最新代码:
      git checkout main
      git pull origin main
      
    • 创建目标发布分支(如release-2.0):
      git checkout -b release-2.0
      
    • 移除版本的SNAPSHOT后缀,转为发布候选版本:
      ./gradlew nebulaReleaseUpdateVersion -Prelease.version=2.0.0
      
    • 提交版本变更并推送分支:
      git add build.gradle settings.gradle # 包含版本定义的文件,按需调整
      git commit -m "Prepare release 2.0.0"
      git push origin release-2.0
      
  2. 升级Main分支到下一个开发版本

    • 切回main分支:
      git checkout main
      
    • 将版本更新为下一个SNAPSHOT(如2.1.0-SNAPSHOT):
      ./gradlew nebulaReleaseUpdateVersion -Prelease.version=2.1.0-SNAPSHOT
      
    • 提交并推送版本变更:
      git add build.gradle settings.gradle
      git commit -m "Prepare next development version 2.1.0-SNAPSHOT"
      git push origin main
      

二、在Release分支发布正式版本

这一步对应Maven的mvn release:perform,Nebula可以直接在发布分支上完成打标签、发布到仓库的操作:

  1. 切换到目标Release分支并拉取最新代码:

    git checkout release-2.0
    git pull origin release-2.0
    
  2. 执行发布命令,Nebula会自动创建版本标签(默认格式如v2.0.0)并推送,同时完成发布流程:

    ./gradlew final
    

    若需自定义标签格式,可在build.gradle中配置:

    nebulaRelease {
      tagPattern = /v${version}/ // 默认规则,可按需修改为其他格式
    }
    
  3. 补丁版本发布(如2.0.1)
    若后续需要在Release分支修复bug并发布补丁版本,重复以下步骤:

    • 在release-2.0分支修复bug,提交代码
    • 更新版本号到补丁版本:
      ./gradlew nebulaReleaseUpdateVersion -Prelease.version=2.0.1
      
    • 提交版本变更:
      git add build.gradle settings.gradle
      git commit -m "Prepare release 2.0.1"
      
    • 执行发布:
      ./gradlew final
      

三、核心配置参考

确保你的build.gradle中正确引入并配置Nebula Release Plugin:

plugins {
    id 'nebula.release' version '18.3.0' // 使用最新稳定版本
    id 'java'
    id 'maven-publish' // 用于发布到Maven仓库
}

// 发布仓库配置(按需调整)
publishing {
    publications {
        mavenJava(MavenPublication) {
            from components.java
        }
    }
    repositories {
        maven {
            url = uri("你的仓库地址")
            credentials {
                username = project.findProperty('repoUsername') ?: System.getenv('REPO_USERNAME')
                password = project.findProperty('repoPassword') ?: System.getenv('REPO_PASSWORD')
            }
        }
    }
}

// 配置版本策略为手动指定,贴合原有Maven工作流
nebulaRelease {
    defaultVersionStrategy = 'manual'
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 23:33:20