发现一个有点奇怪的问题,我有一个多module的项目,为了控制jar包版本,使用
</dependencyManagement>将jar包版本管理起来
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.5</version>
</dependency>
</dependencies>
</dependencyManagement>
可是我发现,子 pom文件中,还是有jar包冲突,后来经过百度https://www.jianshu.com/p/e867ac845e11 这篇文章为我解答了问题

即子类项目中,不能显示的指定版本号,否则将会覆盖
至于原因,看这篇博客https://blog.csdn.net/jiaobuchong/article/details/81842503
pom文件中没有指定版本的依赖或是传递的依赖,如果在dependencyManagement中有指定此依赖版本,那就使用dependencyManagement中定义的版本号。
理解Maven父POM的dependencyManagement与子POM依赖关系

在多module Maven项目中,为统一jar包版本,通常使用父POM的<dependencyManagement>。然而,若子POM明确指定了依赖版本,可能会导致版本冲突。根据文章解析,子POM不应显式指定版本,以免覆盖父POM中的版本控制。未在子POM指定版本的依赖会继承dependencyManagement中的版本。
最低0.47元/天 解锁文章
2553

被折叠的 条评论
为什么被折叠?



