Maven依赖版本号不生效
????????最近受log4j2的漏洞的影響,全網(wǎng)碼農(nóng)開始升級(jí)log4j2。我這里的服務(wù)也需要升級(jí),但是我遇到了一個(gè)問題:修改依賴之后發(fā)現(xiàn)版本號(hào)沒有變化。
一、依賴現(xiàn)狀
項(xiàng)目A依賴了一個(gè)common包,common包里面依賴log4j2
<dependencyManagement><dependencies><dependency><!-- Import dependency management from Spring Boot --><groupId>org.springframework.boot</groupId><artifactId>spring-boot-dependencies</artifactId><version>${spring.boot.dependencies.version}</version><type>pom</type><scope>import</scope></dependency></dependencies> </dependencyManagement><dependencies><dependency><groupId>com.exmaple.foundation</groupId><artifactId>common</artifactId><version>${common.version}</version></dependency>... </dependencies>common包依賴修改:
<dependencies><dependency><groupId>com.example.mq</groupId><artifactId>producer-sdk</artifactId><version>2.0.5-SNAPSHOT</version><!-- 排除舊版本log4j2 --><exclusions><exclusion><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-slf4j-impl</artifactId></exclusion><exclusion><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-core</artifactId></exclusion><exclusion><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-api</artifactId></exclusion></exclusions></dependency><!-- 引入新版本log4j2 --><dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-api</artifactId><version>2.15.0</version></dependency><dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-core</artifactId><version>2.15.0</version></dependency>... </dependencies>?本以為這樣是可以生效的,但實(shí)際并沒有生效。后來查閱maven依賴關(guān)系,發(fā)現(xiàn)有以下原因:
1)dependencyManagement優(yōu)先級(jí)要高于dependencies中的
2)spring-boot-dependencies依賴log4j2,版本是2.10.0
3)spring-boot-dependencies放到了dependencyManagement,所以最終使用的版本是2.10.0
這是根因,既然知道了根因,那就好解決了,通過spring官網(wǎng)獲得最終解決方案
二、官方修改建議
通過查看spring官方修改意見,如下圖示:
Log4J2 Vulnerability and Spring Boot
按照springboot官方提出的修改意見,最終生效。?
?三、總結(jié)
????????maven依賴很少出現(xiàn)問題,但是真出問題了還是挺難弄的。這個(gè)問題困惑了一天,才最終解決。特地寫一篇博客記錄下:dependencyManagement的優(yōu)先級(jí)要高于dependencies
總結(jié)
以上是生活随笔為你收集整理的Maven依赖版本号不生效的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: XSL 和 XSLT的区别
- 下一篇: 【20210805】【数据分析】标称型数