java - 与具有不同版本的给定依赖项的相同 maven 模块的差异
问题描述
很难用语言来解释我的问题,所以我拍了一张照片,这正是我的问题所在:
如您所见,我有 3 个相关模块,一个 global、genui 和 web。
genui 依赖于 global,web 依赖于 genui。
直接而言,web 不依赖于 global,但通过 genui 显然可以。
如您所见,如果我看一下web->genui->global的hibernate版本,它是5.2.14,但如果我从genui->global看它,它是5.3.0。
除了 1.0-SNAPSHOT 之外,没有,也从来没有任何版本的这些模块。
我尝试清理,从 .m2/repository 中删除文件,甚至尝试完全清除本地存储库,但没有任何效果。我不知道 maven 从哪里得到 5.2.14 号码,我不记得曾经把它放进去。版本是从父模块中的属性接收的。
我发现问题是由 web 模块的 pom.xml 引起的,更具体地说是这部分:
<dependencyManagement>
...
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>${spring-boot.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
...
</dependencyManagement>
解决方案
您可能需要从其中一个 spring 中排除重复的依赖项......验证您的所有依赖项并查看哪些是包含 hibernate 的依赖项。检查您是否也有不同版本的 servlet-api。