Maven Jar包衝突處理

    最近在工做中用CXF遇到Jar包衝突的問題,在此作一個記錄。
    在使用CXF調用WebService服務時,遇到一個異常:java.lang.NoSuchMechodError:org.apache.ws.commons.schema.XmlSchemaCollection.getExtGet().然而Jar包已經在Maven的pom.xml中引入進來了,jar包是xmlschema-core-2.0.3.jar,但是點擊類XmlSchemaCollection卻連接到了XmlSchema-1.1.jar原來這個包裏的類版本比較低。仔細一查看這個Jar是被xfire-all-1.2.6.jar依賴而引入進來的,因而兩個Jar中的class就相互衝突了。
    因而得想辦法把XmlSchema-1.1.jar不引入,通過請教同事和網上找資料,Maven能夠在pom.xml經過配置<exclusions>解除對於其餘jar的引用。配置以下:java

<dependency>
    <goupId>org.codehaus.xfire</goupId>
    <artifactId>xfire-all<artifactId>
    <version>1.2.6</version>
    <exclusions>
        <exclusion>
            <groupId>org.codehaus.xfire</goupId>
            <artifactId>xfire-spring</artifactId>
        </exclusion>
        <--! 解除jar依賴 -->
        <exclusion>
            <groupId>org.apache.ws.commons</goupId>
            <artifactId>XmlSchema</artifactId>
        </exclusion>
    </exclusions>
<dependency>


附錄:問題處理和截圖spring

異常信息:apache

查看class所在jar
spa

兩個jar都有該class
code


查看jar依賴關係
xml

解除jar依賴關係
get

相關文章
相關標籤/搜索