一次jar包沖突的解決

在一次項(xiàng)目的調(diào)試中發(fā)現(xiàn)了log4j-over-slf4j.jar 和 slf4j-log4j12.jar 兩個jar包存在沖突,于是根據(jù)這個問題突引發(fā)出如何解決jar包沖突的方法椎组。

首先先還原這個異常:

  • 在pom文件中引入奋献,log4j-over-slf4j 和 slf4j-log4j12案训,如下:
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-log4j12</artifactId>
    <version>1.7.21</version>
</dependency>
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>log4j-over-slf4j</artifactId>
    <version>1.7.21</version>
</dependency>
  • 然后寫一個測試類:
public class DetectedBothLog {

    private static Logger logger = LoggerFactory.getLogger(DetectedBothLog.class);

    public static void main(String[] args) {
        logger.debug("hello, this is a log demo");
    }

}

運(yùn)行后異常如下:


很明顯可以看到是jar沖突店枣,為什么這兩個jar會沖突了速警,并且導(dǎo)致的還是堆棧溢出叹誉?

在slf4j的官網(wǎng)中其實(shí)已經(jīng)給出了解釋:鏈接。意思是:slf4j-log4j12模塊的目的是將對SLF4J的日志委托或重定向到log4j(大家都知道slf4j其實(shí)并不具體實(shí)現(xiàn)日志的記錄)闷旧。而同時桂对,log4j-over-slf4j模塊的目的是將log4j的日志重定向到SLF4J,那這樣一來勢必導(dǎo)致循環(huán)調(diào)用鸠匀,也就會出現(xiàn)StackOverflowError。

重點(diǎn)來了……

要解決這個問題逾柿,只需要排除 slf4j-log4j12.jar即可缀棍。但是如何找到這個jar包了?很大部分情況是机错,這個jar包并不是直接在你的工程pom文件中引入的爬范,它可能是你依賴的一個jar包,而這個依賴的jar包依賴了slf4j-log4j12.jar弱匪。那需要找到你真實(shí)依賴的jar包青瀑,然后exclustion掉。

<exclusion>  
     <groupId>org.slf4j</groupId>  
     <artifactId>slf4j-log4j12</artifactId>  
 </exclusion>

那現(xiàn)在的問題是:如何找到你工程pom文件中依賴的真實(shí)jar包萧诫?通常有以下幾種方法:

第一種:假設(shè)你已經(jīng)知道需要排除的jar的groupId和artifactId

例如斥难,slf4j-log4j12.jar的groupId和artifactId分別是,org.slf4j 和 slf4j-log4j12帘饶。那這種情況下哑诊,最方面的就是執(zhí)行如下的一個命令:

mvn dependency:tree -Dverbose -Dincludes=org.slf4j: slf4j-log4j12

這樣就可以直接看到slf4j-log4j12.jar是哪個jar包依賴的了。

第二種:就是借助IDE查找

例如使用intelj idea及刻,在安裝了dependency analyzer插件后镀裤,就可以打開pom文件缴饭,然后直接搜索,最后就可以得到它是屬于哪個jar.

總結(jié):jar包沖突也是屬于程序異常的一種類型颗搂,不要忽略它。當(dāng)遇到后毁习,如何解決jar包沖突卖丸,可以用上面兩種方法,簡單直接

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末稍浆,一起剝皮案震驚了整個濱河市猜嘱,隨后出現(xiàn)的幾起案子朗伶,更是在濱河造成了極大的恐慌步咪,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,755評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件点晴,死亡現(xiàn)場離奇詭異粒督,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)屠橄,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評論 3 395
  • 文/潘曉璐 我一進(jìn)店門闰挡,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人贮匕,你說我怎么就攤上這事花枫。” “怎么了劳翰?”我有些...
    開封第一講書人閱讀 165,138評論 0 355
  • 文/不壞的土叔 我叫張陵佳簸,是天一觀的道長。 經(jīng)常有香客問我听想,道長,這世上最難降的妖魔是什么汉买? 我笑而不...
    開封第一講書人閱讀 58,791評論 1 295
  • 正文 為了忘掉前任蛙粘,我火速辦了婚禮,結(jié)果婚禮上出牧,老公的妹妹穿的比我還像新娘。我一直安慰自己舔痕,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,794評論 6 392
  • 文/花漫 我一把揭開白布慨代。 她就那樣靜靜地躺著,像睡著了一般鸣剪。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上筐骇,一...
    開封第一講書人閱讀 51,631評論 1 305
  • 那天铛纬,我揣著相機(jī)與錄音,去河邊找鬼棺弊。 笑死擒悬,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的懂牧。 我是一名探鬼主播,決...
    沈念sama閱讀 40,362評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼畜侦,長吁一口氣:“原來是場噩夢啊……” “哼旋膳!你這毒婦竟也來了途事?” 一聲冷哼從身側(cè)響起咏连,我...
    開封第一講書人閱讀 39,264評論 0 276
  • 序言:老撾萬榮一對情侶失蹤祟滴,失蹤者是張志新(化名)和其女友劉穎歌溉,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體痛垛,經(jīng)...
    沈念sama閱讀 45,724評論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡匙头,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年蹂析,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片惕稻。...
    茶點(diǎn)故事閱讀 40,040評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡蝙叛,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出蜘渣,到底是詐尸還是另有隱情肺然,我是刑警寧澤,帶...
    沈念sama閱讀 35,742評論 5 346
  • 正文 年R本政府宣布捂龄,位于F島的核電站,受9級特大地震影響倦沧,放射性物質(zhì)發(fā)生泄漏它匕。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,364評論 3 330
  • 文/蒙蒙 一告希、第九天 我趴在偏房一處隱蔽的房頂上張望扑浸。 院中可真熱鬧喝噪,春花似錦指么、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,944評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至悍及,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間并鸵,已是汗流浹背扔涧。 一陣腳步聲響...
    開封第一講書人閱讀 33,060評論 1 270
  • 我被黑心中介騙來泰國打工枯夜, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留艰山,地道東北人。 一個月前我還...
    沈念sama閱讀 48,247評論 3 371
  • 正文 我出身青樓摔吏,卻偏偏與公主長得像纵装,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子诗箍,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,979評論 2 355

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理滤祖,服務(wù)發(fā)現(xiàn),斷路器匠童,智...
    卡卡羅2017閱讀 134,659評論 18 139
  • 依賴沖突解決辦法 maven 的價值 Java開發(fā)中俏让,jar的管理由maven來管。maven做的事情: jar統(tǒng)...
    區(qū)影閱讀 10,295評論 0 10
  • 問題 在項(xiàng)目啟動時寡喝,發(fā)現(xiàn)打印了大量的debug日志,但是src/main/resources下明明有l(wèi)og4j.x...
    Mr胡桃閱讀 22,102評論 2 11
  • spring官方文檔:http://docs.spring.io/spring/docs/current/spri...
    牛馬風(fēng)情閱讀 1,684評論 0 3
  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 46,822評論 6 342