java解決包依賴衝突

後端報錯如下:

WARN  [] o.s.b.t.j.DuplicateJsonObjectContextCustomizerFactory$DuplicateJsonObjectContextCustomizer.logDuplicateJsonObjectsWarning - 

Found multiple occurrences of org.json.JSONObject on the class path:

	jar:file:/D:/java_code/maven/repository/org/json/json/20140107/json-20140107.jar!/org/json/JSONObject.class
	jar:file:/D:/java_code/maven/repository/com/vaadin/external/google/android-json/0.0.20131108.vaadin1/android-json-0.0.20131108.vaadin1.jar!/org/json/JSONObject.class

You may wish to exclude one of them to ensure predictable runtime behavior

即:有2個地方衝突的 json 依賴,需要 排除(exclude )一個。
解決辦法:
下面那個 json-20140107.jar添加的json依賴希望保留,那麼就需要排除掉 android-json 這個依賴。

首先需要知道這個 android-json 是在哪個依賴裏面,pom.xml 直接搜肯定是找不到 android-json的。
尋找看不到的 依賴 android-json,在pom文件編輯頁面,右鍵–Diagrams-Show Dependencies…
在這裏插入圖片描述
在這裏插入圖片描述
放大後(百度查看其他人ctrl+F可以進行搜索,本人嘗試未能出現搜索框),找到android-json,根據依賴線箭頭髮現 android-json 在 spring-boot-starter-test 裏面。

然後,在 spring-boot-starter-test 裏面排除依賴 android-json ,如下:

   <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
           <exclusions>
                <exclusion>
                    <groupId>com.vaadin.external.google</groupId>
                    <artifactId>android-json</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

其實,就是在原有依賴裏面加入了下面內容:

    <exclusions>
                <exclusion>
                    <groupId>com.vaadin.external.google</groupId>
                    <artifactId>android-json</artifactId>
                </exclusion>
    </exclusions>

類似的方法,解決一些隱藏的依賴包衝突 也可以這樣去尋找解決!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章