我遇到了一个问题,即在我的类路径中出现了同一类的多个版本。所涉及的类是javax.ws.rs.core.UriBuilder
。我想要使用的版本是由javax.ws.rs:javax.ws.rs-api:2.0.1
引入的。然而,我们还使用Jira rest客户端库,它依赖于旧版本的jersey(com.sun.jersey:jersey-core
),其中包含了java.ws包。这是构建文件的示例片段:
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
,因为它使用与新版本不同的包名称,在Jira客户端中会导致类未找到异常。
据我所知,此时我的选择有:
- 回退到使用Jersey 1.x和其对jsr311的实现
- 通过gradle从旧的jersey客户端中排除
javax.ws
包。
我想继续使用更新版本的Jersey,因此#2是我理想的解决方案,但我不确定它是否可行。有人知道如何处理吗?如果不可能,我也愿意听取其他建议。