首页 > 解决方案 > Maven非标准版本控制意外的最新版本结果

问题描述

这里提到_

如果您在项目版本控制方案中不遵循 Maven 版本控制标准,那么对于版本比较,Maven 会将整个版本解释为一个简单的字符串

从示例中,我们可以看到1.0.9.3应该被视为更新比1.0.10.1

1.0.1.0 
1.0.10.1
1.0.10.2
1.0.9.3 < most updated version

我目前正在做一个项目。它依赖于一个包com.example.http,该包是版本化的1.0.12.2。现在有几个更新。版本的子集是 ( 1.0.0, 1.0.9, 1.0.12.2, 1.0.16)。由于它不遵循 Maven 版本控制标准,我希望这些版本的顺序是:

1.0.0
1.0.12.2
1.0.16
1.0.9

Q1: 但是,当我运行时mvn versions:display-dependency-updates,它说这 1.0.16是最新版本。为什么?

Q2: 我应该做些什么来删除非标准1.0.12.2吗?注意: all, but1.0.12.x遵循 maven 版本控制标准

[INFO] com.example:http ............................ 1.0.12.2 -> 1.0.16

标签: javamavenversion-control

解决方案


该机制大约在 10 年前发生了变化,因此您的信息已过时。Maven 能够对任意长的版本号进行排序,参见例如https://blog.soebes.de/blog/2017/02/04/apache-maven-how-version-comparison-works/

更多信息也可以在答案中找到https://stackoverflow.com/a/31482463/927493


推荐阅读