SpringBoot使用log4j2的POM依賴順序要求

POM使用<exclusions>標(biāo)簽排除多個(gè)依賴包的同一個(gè)依賴時(shí)膳音,需要注意pom依賴的順序問題(當(dāng)然也可以每個(gè)都進(jìn)行排除)。

1 正常場景

以下為SpringBoot相關(guān)的依賴:

<!-- Spring Dependencies -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-logging</artifactId>
                </exclusion>
                <exclusion>
                    <artifactId>spring-boot-starter-json</artifactId>
                    <groupId>org.springframework.boot</groupId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-log4j2</artifactId>
        </dependency>
        <dependency>
            <!-- Commons Logging to Log4j2 -->
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-jcl</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-aop</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-configuration-processor</artifactId>
            <optional>true</optional>
        </dependency>

運(yùn)行后控制臺(tái)結(jié)果如下:


1.png

2 異常場景

當(dāng)我調(diào)整了pom中Spring的依賴順序后如下(其余保持完全不變):

<!-- Spring Dependencies -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-aop</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-configuration-processor</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-logging</artifactId>
                </exclusion>
                <exclusion>
                    <artifactId>spring-boot-starter-json</artifactId>
                    <groupId>org.springframework.boot</groupId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-log4j2</artifactId>
        </dependency>
        <dependency>
            <!-- Commons Logging to Log4j2 -->
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-jcl</artifactId>
        </dependency>

再次啟動(dòng)應(yīng)用時(shí)弟晚,控制臺(tái)打印如下:


2.png

3 疑問和思考

3.png

現(xiàn)象:經(jīng)過依賴分析行楞,確實(shí)日志沖突了(spring-boot-starter-jdbcspring-boot-starter-thymeleaf
疑問:難道pom的依賴還有順序的要求锋叨?

經(jīng)過反復(fù)驗(yàn)證菊匿,發(fā)現(xiàn)當(dāng)MAVEN使用<exclusions>標(biāo)簽時(shí)付呕,需要在依賴的第一個(gè)包進(jìn)行排除,如下:

<!-- Spring Dependencies -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-logging</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-aop</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-configuration-processor</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-log4j2</artifactId>
        </dependency>
        <dependency>
            <!-- Commons Logging to Log4j2 -->
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-jcl</artifactId>
        </dependency>
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末跌捆,一起剝皮案震驚了整個(gè)濱河市徽职,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌佩厚,老刑警劉巖姆钉,帶你破解...
    沈念sama閱讀 222,729評(píng)論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異抄瓦,居然都是意外死亡潮瓶,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,226評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門钙姊,熙熙樓的掌柜王于貴愁眉苦臉地迎上來毯辅,“玉大人,你說我怎么就攤上這事煞额∷伎郑” “怎么了沾谜?”我有些...
    開封第一講書人閱讀 169,461評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵,是天一觀的道長壁袄。 經(jīng)常有香客問我类早,道長,這世上最難降的妖魔是什么嗜逻? 我笑而不...
    開封第一講書人閱讀 60,135評(píng)論 1 300
  • 正文 為了忘掉前任涩僻,我火速辦了婚禮,結(jié)果婚禮上栈顷,老公的妹妹穿的比我還像新娘逆日。我一直安慰自己,他們只是感情好萄凤,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,130評(píng)論 6 398
  • 文/花漫 我一把揭開白布室抽。 她就那樣靜靜地躺著,像睡著了一般靡努。 火紅的嫁衣襯著肌膚如雪坪圾。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,736評(píng)論 1 312
  • 那天惑朦,我揣著相機(jī)與錄音兽泄,去河邊找鬼。 笑死漾月,一個(gè)胖子當(dāng)著我的面吹牛病梢,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播梁肿,決...
    沈念sama閱讀 41,179評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼蜓陌,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了吩蔑?” 一聲冷哼從身側(cè)響起钮热,我...
    開封第一講書人閱讀 40,124評(píng)論 0 277
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎哥纫,沒想到半個(gè)月后霉旗,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,657評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡蛀骇,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,723評(píng)論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了读拆。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片擅憔。...
    茶點(diǎn)故事閱讀 40,872評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖檐晕,靈堂內(nèi)的尸體忽然破棺而出暑诸,到底是詐尸還是另有隱情蚌讼,我是刑警寧澤,帶...
    沈念sama閱讀 36,533評(píng)論 5 351
  • 正文 年R本政府宣布个榕,位于F島的核電站篡石,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏西采。R本人自食惡果不足惜凰萨,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,213評(píng)論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望械馆。 院中可真熱鬧胖眷,春花似錦、人聲如沸霹崎。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,700評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽尾菇。三九已至境析,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間派诬,已是汗流浹背劳淆。 一陣腳步聲響...
    開封第一講書人閱讀 33,819評(píng)論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留千埃,地道東北人憔儿。 一個(gè)月前我還...
    沈念sama閱讀 49,304評(píng)論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像放可,于是被迫代替她去往敵國和親谒臼。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,876評(píng)論 2 361

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

  • SpringMVC原理分析 Spring Boot學(xué)習(xí) 5耀里、Hello World探究 1蜈缤、POM文件 1、父項(xiàng)目...
    jack_jerry閱讀 1,309評(píng)論 0 1
  • 學(xué)習(xí)網(wǎng)站:spring boot Spring Boot的優(yōu)勢 自動(dòng)配置 根據(jù)Classpath中的包自動(dòng)配置相應(yīng)...
    zlcook閱讀 367評(píng)論 0 1
  • “ 該系列的文章主要參考Spring Boot的官方文檔來進(jìn)行翻譯冯挎,逐步將官方文檔翻譯過來底哥,方便大家共同學(xué)習(xí)和討論...
    tearofthemyth閱讀 2,047評(píng)論 0 1
  • 一、Spring Boot基本配置 1房官、入口類和@SpringBootApplication Spring Boo...
    夢中一點(diǎn)心雨閱讀 18,558評(píng)論 0 5
  • 昨晚老公很晚很晚才回家翰守,我發(fā)了脾氣孵奶,這回他都受了,沒有頂嘴就一個(gè)勁地認(rèn)了蜡峰,我突然這段時(shí)間的郁悶就全消了了袁。難道我這段...
    籮卜切絲閱讀 324評(píng)論 1 2