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

axion-release插件currentVersion值来源及配置咨询

关于axion-release插件版本配置的问题解答

1. 当前版本0.1.0-SNAPSHOT的来源

axion-release插件核心逻辑是基于Git仓库标签自动推断项目版本。如果你的Git仓库中没有符合插件默认规则(如v*格式,例v1.0.0)的版本标签,插件会自动使用默认初始版本0.1.0-SNAPSHOT。这也是你在gradle.properties中设置version=0.0.1-SNAPSHOT后未生效的原因——插件会覆盖Gradle原生的version属性。

2. 能否使用gradle.properties中的版本值?

可以,但需要修改插件配置,让它读取gradle.properties的值作为初始版本,或禁用自动版本推断逻辑:

方式一:将gradle.properties的值作为初始版本

在build.gradle中添加插件配置,指定初始版本读取自gradle.properties:

plugins {
    id 'pl.allegro.tech.build.axion-release' version '1.14.0'
}

scmVersion {
    initialVersion = project.version
}

方式二:完全禁用自动版本推断,直接使用自定义版本

若不需要基于Git标签的版本管理,可关闭插件的自动版本计算:

plugins {
    id 'pl.allegro.tech.build.axion-release' version '1.14.0'
}

scmVersion {
    versionCreator {
        return project.version
    }
}

3. 插件的最佳版本配置方式

axion-release的核心优势是Git流驱动的版本管理,推荐围绕Git标签和分支规则配置:

推荐配置:基于Git标签的自动版本管理

这是插件的默认设计思路,无需额外复杂配置,只需遵循标签规范:

  • 给仓库打版本标签(推荐格式v{版本号},如v1.0.0、v2.1.3-SNAPSHOT)
  • 插件自动识别标签,分支上的未提交变更会自动追加-SNAPSHOT后缀
  • 示例默认配置(无需额外修改,插件自动生效):
plugins {
    id 'pl.allegro.tech.build.axion-release' version '1.14.0'
}

自定义标签规则

若不想用v前缀的标签,可修改标签匹配规则:

scmVersion {
    tag {
        prefix = '' // 去掉v前缀,直接用版本号作为标签,如1.0.0
    }
}

分支特定版本规则

可为不同分支设置不同版本后缀,比如开发分支用-SNAPSHOT,发布分支用正式版本:

scmVersion {
    branchVersionCreator = [
        'master': { version, _ -> version }, // master分支用正式版本
        'develop': { version, _ -> "${version}-SNAPSHOT" }, // develop分支带SNAPSHOT
        'feature/*': { version, _ -> "${version}-FEATURE-SNAPSHOT" } // 特性分支自定义后缀
    ]
}

手动指定版本(临时场景)

若需临时覆盖自动版本,可通过命令行参数指定:

./gradlew currentVersion -PscmVersion.version=0.0.1-SNAPSHOT

内容的提问来源于stack exchange,提问作者D. Joe

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 16:45:54