关于maven jar版本号的排序
maven version sort具体算法实现:
https://maven.apache.org/pom.html#version-order-specification
https://maven.apache.org/pom.html#version-order-testing
查看项目中使用的版本号
mvn dependency:tree
使用插件
遇到的问题:
IDEA Project中的JDBC jar version更新了, 其他依赖这个module中的jar却不更新
尝试mvn Reimport, clean idea cache, mvn clean install都无效
https://docs.oracle.com/middleware/1212/core/MAVEN/maven_version.htm#MAVEN401
mvn最后认为1.0.9.3
比 1.0.10.2
新, 因为它用字符串去比较了, 并不适用上面那个ComparableVersion.java
原因是oracle用的version号不符合maven的version标准: 最后一个点应该换成- ,即‘1.0.9-3’, 4个数字的编码规则是错误的
依赖传递的机制:https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html
修改version排序的方法:https://www.mojohaus.org/versions-maven-plugin/faq.html
解决问题
parent pom中固定版本号,
spring-boot-dependencies-2.x.pom中已经定义了一些版本号,如果自己的parent.pom又依赖sprint-boot的,就在pom.xml中覆盖spring的<properties></properties>
, 不是覆盖<version>
.
子module中的依赖不加<version>
标签