日常開發中經常會遇到xxx.class 找不到的異常,但是這個類確實存在我們的項目中,就會感覺很離奇,其實這就是包沖突的問題
沖突問題
比如項目中引用了兩個 fastjson.jar的版本,分別為
- fastjson:1.2.28
- fastjson:1.2.3
我們用到了1.2.28中的某個類, 比如 a類,在版本更新中 1.2.3版本去掉了這個類,然而我們項目中maven 卻把1.2.3的 jar 打包進去了,那我們就會報異常,不存在這個 class,但是我們調錯誤的時候卻發現這個類存在,那我們怎么找到問題根源呢,到底是哪個包的需要exclude 呢,我之前也不會,今天有幸找到個方法,分享給大家。
idea 中maven 問題
idea 中查看 maven 依賴只會給你一個復雜到極點圖,基本沒有啥價值,所以要安裝個插件 maven helper,這個插件用了都說好啊
解決問題
首先安裝插件 maven helper(因為我已經安裝了,所以沒 install 的按鈕了)
安裝完成后,在 pom 文件下方會出現這個東西
點進去你會發現仿佛回到了 eclipse
接下來到重點了,選中沖突選項 conflicts,這一列都是存在沖突的包
以fastjson 為例
當然我們調錯誤的時候也可以直接搜索有問題的包,如下
選中右鍵就可以 exclude 啦,想用1.2.28就把其他版本的exclude掉,想用1.2.3就把其他版本的exclude掉,是不是很方便。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。
原文鏈接:https://www.cnblogs.com/a8457013/p/9108698.html