不遵循语义版本控制方案的项目的Gradle发布插件

不遵循语义版本控制方案的项目的Gradle发布插件,gradle,release,semantic-versioning,gradle-release-plugin,axion-release-plugin,Gradle,Release,Semantic Versioning,Gradle Release Plugin,Axion Release Plugin,我正在编写一个组件,它将与某个特定版本的平台一起工作。假设平台版本为1.18.0,那么我想发布组件,例如版本为1.18.0.1,然后是1.18.0.2。如果平台更新,我想发布1.19.0.1等。这当然会破坏语义版本控制 我需要一个Gradle的发布插件,它支持这个版本控制方案,但是它只使用标签来存储版本(发布期间没有提交,所以我不能使用) 根据我所见,有两个插件强制执行语义版本控制,因此我无法使用它们: axion发布插件() nebula发布插件() 如何实现与axion release

我正在编写一个组件,它将与某个特定版本的平台一起工作。假设平台版本为1.18.0,那么我想发布组件,例如版本为
1.18.0.1
,然后是
1.18.0.2
。如果平台更新,我想发布
1.19.0.1
等。这当然会破坏语义版本控制

我需要一个Gradle的发布插件,它支持这个版本控制方案,但是它只使用标签来存储版本(发布期间没有提交,所以我不能使用)

根据我所见,有两个插件强制执行语义版本控制,因此我无法使用它们:

  • axion发布插件()
  • nebula发布插件()
如何实现与axion release plugin基本相同但不遵循semver的自定义版本控制方案?

实际上可以满足您的需求。 禁用build.gradle中不需要的任务

preTagCommit.enabled = false
commitNewVersion.enabled = false

最后,您应该只有git中的标记。但是为什么不把它提交给git呢?至少我认为您需要新版本(commitNewVersion)。

我不想在Git中提交,因为我不想污染历史。在我的例子中,几乎每次提交后都会有释放。如果我按照您的建议设置属性,那么gradle发行版将如何知道下一个版本将使用什么?Axion读取标签来确定。啊,好的,明白了。当我查看配置文档时,我认为应该可以使用自定义版本模式。例如,指定您自己的versionIncrementer以拥有您自己的模式。它看起来高度可定制。