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

