Maven?Pom?文件中的隱式依賴導(dǎo)致Jar沖突問題
在maven項(xiàng)目中遇到這樣一個(gè)場景
- 項(xiàng)目中的pom文件中,依賴了Spring-core,而Spring-core又隱式的依賴了commons-logging。
- 項(xiàng)目中同時(shí)配置了對定時(shí)任務(wù)quartz 包的依賴,而quartz又隱式依賴了slf4j。
這樣項(xiàng)目中既有了commons-logging又有了slf4j。導(dǎo)致在log4j.properties里配置的mybatis的sql顯示配置,一直沒起作用,直到我查看maven dependencie中的jar包時(shí),才發(fā)現(xiàn)項(xiàng)目既依賴了common-logging又引入了slf4j。后來通過排除quartz中的slf4j的依賴
解決了上述沖突的問題
<dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz</artifactId> <exclusions> <exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> </exclusion> </exclusions> </dependency>
以后該如何解決這種類似的問題呢。eclipse提供了對隱式依賴jar包的查看功能:在eclipse中打開一個(gè)pom文件,在Dependency Hierarchy的Tab頁中,就可以查看當(dāng)前pom文件中顯示聲明的jar包,及這些顯示聲明的jar中隱式引入的依賴jar包。
這樣就可以查看有哪些隱式的依賴jar會(huì)導(dǎo)致jar包沖突了。
Maven 查看jar包依賴關(guān)系
使用eclipse操作,在項(xiàng)目中打開pom.xml文件進(jìn)入Dependency Hierarchy 來查看依賴樹
Dependency hierarchy
:依賴層次視圖
Resolved dependencies
:依賴關(guān)系解析
點(diǎn)擊右邊jar或者搜索需要查找的jar可以在左邊找到對應(yīng)關(guān)系
比如在NewEnergyCheckDemo項(xiàng)目中啟動(dòng)springBoot工程控制臺(tái)不打印錯(cuò)誤信息,那一定是某個(gè)日志jar包有沖突導(dǎo)致的,我們就可以直接搜索要查找的jar,我們可以看到在pom.xml文件中依賴了
而Commons-vfs2這個(gè)jar包中又隱式依賴了commons-logging
在項(xiàng)目中我們又配置了spring-boot-starter-web的依賴
我們可以看到該jar包又隱式依賴了一些其他的jar包,如spring-boot-starter又包含了spring-boot-starter-logging,該依賴的內(nèi)容就是springBoot默認(rèn)的日志框架logback,所以我們在使用springBoot的日志框架時(shí)應(yīng)該先排除commons-vfs2中commons-logging該jar包的依賴.
排除jar包依賴,找到需要排除的jar包點(diǎn)擊右鍵如下圖
排除依賴之后的pom.xml坐標(biāo)如下
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Spring AspectJ 實(shí)現(xiàn)AOP的方法你了解嗎
這篇文章主要為大家介紹了Spring AspectJ 實(shí)現(xiàn)AOP的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助2022-01-01Java方法調(diào)用解析靜態(tài)分派動(dòng)態(tài)分派執(zhí)行過程
這篇文章主要為大家介紹了Java方法調(diào)用解析靜態(tài)分派動(dòng)態(tài)分派執(zhí)行過程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-06-06Kotlin 開發(fā)環(huán)境詳解及簡單實(shí)例
這篇文章主要介紹了 Kotlin 開發(fā)環(huán)境詳解及簡單實(shí)例的相關(guān)資料,需要的朋友可以參考下2017-06-06java如何實(shí)現(xiàn)socket連接方法封裝
這篇文章主要介紹了java實(shí)現(xiàn)socket連接方法封裝教程,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-09-09Maven打包jar生成javadoc文件和source文件代碼實(shí)例
這篇文章主要介紹了Maven打包jar生成javadoc文件和source文件代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-11-11java 生成有序賬號(hào)的實(shí)現(xiàn)方法
下面小編就為大家?guī)硪黄猨ava 生成有序賬號(hào)的實(shí)現(xiàn)方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-10-10spring mvc4的日期/數(shù)字格式化、枚舉轉(zhuǎn)換示例
本篇文章主要介紹了spring mvc4的日期/數(shù)字格式化、枚舉轉(zhuǎn)換示例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。2017-01-01macOS下Spring Boot開發(fā)環(huán)境搭建教程
這篇文章主要為大家詳細(xì)介紹了macOS下Spring Boot開發(fā)環(huán)境搭建教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-01-01