我正在为一个新建项目设置版本控制方案,并阅读了很多关于semver和Maven 约定的内容。我正在使用 Nexus OSS 存储库管理器 (v3.13.0)。
在版本控制方面很难确定一个权威的方案,但我相信约定的力量。虽然 semver 文档(上面的链接)似乎写得很好,但我注意到与 Maven 似乎如何处理版本号的冲突。目标是确定一个提供良好排序的方案。Semver 提到预发布标签(后面的部分Major.Minor.Patch-
)可能有点分隔的段,其中一些是数字,并且要像这样进行比较,所以不应该有零填充,例如RC.09
. 然而,在实践中,Maven(上面的 oracle 链接,但这是权威的吗?)将第一个破折号之后的所有内容视为一个字母数字字段,因此,应该使用RC09
and RC10
。
我的问题是,是否使用零填充?我很想坚持semver
,但我也需要一些有效的东西。
增加的复杂性是我使用的不是 Maven,而是 Gradle!但这还重要吗?--> 版本排序在哪里计算,在构建系统或 repo 管理器中(在我的例子中是 Nexus)。看看Nexus 关于这个主题的说法- 但是,它引用了 Maven,所以我不确定这是否适用于 Gradle 客户端(或者更确切地说,适用于maven-publish插件)。再一次,Gradle 在发布标准方面试图模仿 Maven。一团糟!