忽略 Maven 版本号规则的缺点

Disadvantages of ignoring Maven version number rules

除了Maven无法判断最新版本是什么外,忽略Maven version number rules还有什么缺点吗?

例如,假设我想使用包含 4 个版本部分的版本号,例如 1.2.0.1

当您想使用任何需要版本 "sorting" 的 Maven 功能时,遵循 Maven 版本号规则是基本的,例如 ranges.

如果你遵循格式

<MajorVersion [> . <MinorVersion [> . <IncrementalVersion ] ] [> - <BuildNumber | Qualifier ]>

然后 maven 会将 MajorVersion 排序为数字,MinorVersion 排序为数字,IncrementalNumber 排序为数字,BuildNumber 或 Qualifier 排序为字符串。否则,版本将被排序为字符串。

你的例子不是一个好的做法,因为 maven 会错误地认为 1.2.0.10 < 1.2.0.1。

不要忘记特殊限定符 SNAPSHOT,用于构建当前正在开发的版本。在内部,maven 将 SNAPSHOT 限定词扩展为一个时间戳,代表的不是版本,而是你的应用程序在特定时间的 "snapshot"。

关于maven版本号的更多信息,我推荐你阅读this