axion-release-插件
gradle 发布和版本管理插件
在Gradle中发布版本与在Maven中发布版本有很大不同。Maven自带了maven-release-plugin,它完成了所有繁琐的工作。Gradle没有这样的工具,而且可能也不需要。软件开发的演进使我们开始将SCM视为项目版本信息的最终来源。版本不应该硬编码在pom.xml或build.gradle中。
axion-release-plugin采用了这种理念。它不是从构建文件中读取项目版本,而是从SCM中最近的标签派生版本(如果没有标签则设置为默认值)。如果当前提交是已标记的提交,项目就有一个发布版本。如果最后一个标签之后有任何提交,项目就处于SNAPSHOT版本。这种非常简单直观的理念,加上语义化版本规则,使得管理项目版本与SCM标签版本变得更加容易。
需要JDK11+和Gradle 7+。
基本用法
plugins {
id 'pl.allegro.tech.build.axion-release' version '1.18.0'
}
project.version = scmVersion.version
$ git tag
<空列表>
$ ./gradlew currentVersion
0.1.0-branch-SNAPSHOT
$ ./gradlew release
$ git tag
v0.1.0
$ ./gradlew cV
0.1.0
$ git add -A && git commit -m "更新某些内容" && ./gradlew release
$ git tag
v0.1.0
v0.1.1
$ ./gradlew cV
0.1.1
文档
文档可在axion-release read the docs上查阅。
许可证
axion-release-plugin根据Apache License 2.0发布。