java - 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
解决方案
该机制大约在 10 年前发生了变化,因此您的信息已过时。Maven 能够对任意长的版本号进行排序,参见例如https://blog.soebes.de/blog/2017/02/04/apache-maven-how-version-comparison-works/
更多信息也可以在答案中找到https://stackoverflow.com/a/31482463/927493
推荐阅读
- c# - 使用 EF Core 2.2 在 SQL 中为地理数据类型添加索引
- ruby-on-rails - Rails 用户部分作为变量
- php - php - Mysql Query 工作除了一个过滤器
- c# - 关于加速硬盘备份代码的建议
- java - 在 Java 中 String hashCode() 的旧 impl 中跳过字符背后的想法是什么
- python - 如何运行托管在 a2hosting 上的 Flask 应用程序?
- matlab - 如何优化此字符串替换代码
- angular7 - 两种语言 Angular 构建,一种正常,一种有错误
- c# - C# - 线程任务 - Dotnet 4.x 中的最佳实践
- nix - 如何将我的 nix 环境重置为原始用户配置文件?