【问题标题】:Where does axion-release plugin currentVersion come from?axion-release 插件 currentVersion 从哪里来?
【发布时间】:2023-02-09 18:23:43
【问题描述】:
我正在使用 gradle,我添加了插件
plugins {
id 'pl.allegro.tech.build.axion-release' version '1.14.0'
}
现在当我跑步时
./gradlew currentVersion
我正进入(状态
Project version: 0.1.0-SNAPSHOT
我尝试添加一个 gradle.properties 包含
version=0.0.1-SNAPSHOT
但是跑步的时候
./gradlew currentVersion
它仍然返回 0.1.0-SNAPSHOT
我想知道这是从哪里来的,是否可以使用 gradle.properties 中的值,或者使用插件版本的最佳方式是什么。
谢谢。
【问题讨论】:
标签:
gradle
axion-release-plugin
【解决方案1】:
如果它仍然返回0.1.0-SNAPSHOT,那是设计使然。正如 Allegro 的 Adam Dubiel 所说:
... 按照设计,axion-release 不包括 build.gradle 中的版本号。 axion-relese 的哲学是版本不在文件中声明,而是 SCM - git 跟踪的源代码版本的产物。
然后你可以看看documentation或Allegro tech blog:
axion-release-plugin 的流程很简单。每次开始构建时,它都会查找最接近当前提交的版本标记并从中提取版本号。如果您碰巧在标记的提交上,则您在发布版本上运行。如果不是,则增加补丁版本并附加 SNAPSHOT 后缀。
这是流程的示例:
$ git tag
project-1.0.0
$ ./gradlew currentVersion
1.0.0
$ git add . && git commit -m "I've just changed something"
$ ./gradlew currentVersion
1.0.1-SNAPSHOT
$ ./gradlew release
$ git tag
project-1.0.0 project-1.0.1
$ ./gradlew cV # gradle magic - currentVersion
1.0.1
我希望这会有所帮助,尽管回复晚了