maven父pom中修改properties会影响子pom中的dependency版本吗
问题描述:
父pom:
<properties>
<log4j2.version>2.15.0</log4j2.version>
</properties>
子pom:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-log4j2</artifactId>
<version>2.2.7.REALEASE<version>
</dependency>
其中子pom的log4j-core版本是2.12
那么在父pom中设置了log4j2版本后,会使子项目的log4j-core升级到2.15吗?
答
你项目的parent是spring-boot-starter-parent,spring-boot-starter-parent的parent是spring-boot-dependencies,spring-boot-dependencies中的dependencyManagement配置了log4j2的版本,你不需要在自己的pom.xml中额外增加dependencyManagement配置了
答
Maven 父pom中dependencyManagement版本优先级高于传递依赖版本
答
会的,不放心的话可以使用maven helper 插件查看下pom依赖树
答
springboot 实际使用dependencyManagement控制jar包版本,而dependencyManagement中引用log4j2.version属性值,该值默认是2.12,你在自己的父工程改为2.15实际上起到了覆盖属性值的作用。