小編給大家分享一下如何設(shè)置依賴包的優(yōu)先級(jí),希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討吧!
創(chuàng)新互聯(lián)致力于互聯(lián)網(wǎng)網(wǎng)站建設(shè)與網(wǎng)站營(yíng)銷,提供成都網(wǎng)站設(shè)計(jì)、做網(wǎng)站、網(wǎng)站開發(fā)、seo優(yōu)化、網(wǎng)站排名、互聯(lián)網(wǎng)營(yíng)銷、成都小程序開發(fā)、公眾號(hào)商城、等建站開發(fā),創(chuàng)新互聯(lián)網(wǎng)站建設(shè)策劃專家,為不同類型的客戶提供良好的互聯(lián)網(wǎng)應(yīng)用定制解決方案,幫助客戶在新的全球化互聯(lián)網(wǎng)環(huán)境中保持優(yōu)勢(shì)。問(wèn)題出現(xiàn):一個(gè)老項(xiàng)目的退款功能被微信支付后臺(tái)停用,原因是xml解析工具有漏洞風(fēng)險(xiǎn),
微信客服給出的解決方案是使用官方的補(bǔ)丁。
使用補(bǔ)丁后發(fā)現(xiàn):xml-api包與jdk自帶的包沖突。
具體原因:
xml-api包的某個(gè)類與jdk自帶的某個(gè)類具有相同的全限定名,但是xml-api包中并沒有相關(guān)實(shí)現(xiàn),
IDE沒有依賴jdk自帶的包,而是優(yōu)先依賴xml-api包,導(dǎo)致項(xiàng)目無(wú)法完成編譯。
嘗試解決:
在 Maven 中排除 xml-api 包: 從父 pom 里面做排除: 但是項(xiàng)目年代久遠(yuǎn),各種類庫(kù)的依賴盤根錯(cuò)節(jié), 到父 pom 里面沒找到依賴,到依賴的自定義基本庫(kù)里面也沒找到。 況且考慮到父 pom 被其他項(xiàng)目依賴的可能性,所以還是想想其他辦法。 全局排除: 在 pom 文件里加入沖突包的依賴,然后再排除包里全部的內(nèi)容:這個(gè)方法能夠排除掉項(xiàng)目對(duì) xml-api 包里的全部依賴; 但是因?yàn)橄葘?dǎo)入后排除,項(xiàng)目依然會(huì)優(yōu)先依賴 xml-api 包;所以問(wèn)題還是沒有解決。 * *
推薦方案:
修改依賴包的優(yōu)先級(jí): 因?yàn)檫@個(gè)老項(xiàng)目是用 Eclipse 開發(fā),先說(shuō) Eclipse 操作方法。 Eclipse: 設(shè)置 build path order; 把優(yōu)先級(jí)高的包放到上面, 所以可以把 jre 的包放到最上面。 順便看了下 IDEA 的設(shè)置,也能修改優(yōu)先級(jí)。 IDEA: 修改 classpath order: 菜單:File -> Project Structure -> Modules 快捷鍵:Ctrl + Alt + Shift + S -> Modules 把優(yōu)先級(jí)高的包放到上面, IDEA 中,jdk 自帶的包默認(rèn)就是最高優(yōu)先級(jí),所以使用 IDEA 不會(huì)出現(xiàn)類似的問(wèn)題。
看完了這篇文章,相信你對(duì)如何設(shè)置依賴包的優(yōu)先級(jí)有了一定的了解,想了解更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!