我遇到了同一個類的多個版本顯示在我的類路徑中的問題。有問題的班級是javax.ws.rs.core.UriBuilder
。我想使用的版本是由javax.ws.rs:javax.ws.rs-api:2.0.1
引入的。然而,我們也使用Jira休息客戶端庫,它依賴於舊版澤西島(com.sun.jersey:jersey-core
),該澤西島包含捆綁在其jar中的java.ws包。從Gradle依賴中排除軟件包
這裏是從構建文件的示例片段:
dependencies {
compile 'com.atlassian.jira:jira-rest-java-client-core:2.0.0-m31'
compile 'javax.ws.rs:javax.ws.rs-api:2.0.1'
compile 'org.glassfish.jersey.core:jersey-client:2.17'
}
我無法刪除com.sun.jersey:jersey-core
,因爲它來自新版本使用不同的包名,並會造成類DEF沒有找到吉拉客戶例外。
至於我可以告訴大家,我在這一點上的選項有:
- 恢復使用澤西1.x和它的實現JSR311 的
- 莫名其妙地gradle這個從舊球衣排除
javax.ws
包客戶。
我想繼續使用更新版本的球衣,所以#2將是我理想的解決方案,但我不確定是否有可能。有誰知道如何去做這件事?如果這是不可能的,我接受其他建議。
問題是,javax不是傳遞依賴項,它包含在com.sun.jersey:jersey-core jar中。 http://mvnrepository.com/artifact/com.sun.jersey/jersey-core/1.17請參閱軟件包部分中的javax.ws軟件包。 – matheeeny
是不是http://mvnrepository.com/artifact/org.glassfish.jersey.core/jersey-client/2.17這是什麼你添加爲你的問題的依賴?這裏是javax.wx.rs的依賴關係。 – RaGe
是的,我加入了org.glassfish.jersey.core,但是Jira帶來了con.sun.jersey,它包含了它的jar包中的javax.ws.rs。 – matheeeny