gpt4 book ai didi

java - 从 Gradle 依赖项中排除包

转载 作者:搜寻专家 更新时间:2023-10-31 19:27:29 24 4
gpt4 key购买 nike

我遇到了同一个类的多个版本出现在我的类路径中的问题。有问题的类是 javax.ws.rs.core.UriBuilder。我要使用的版本是由javax.ws.rs:javax.ws.rs-api:2.0.1引入的。但是,我们还使用 Jira rest 客户端库,它依赖于旧版本的 jersey (com.sun.jersey:jersey-core),其中包含捆绑在其 jar 中的 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 客户端中出现 class def not found 异常。

据我所知,此时我的选择是:

  1. 恢复使用 Jersey 1.x 及其 jsr311 的实现
  2. gradle 以某种方式从旧泽西客户端中排除了 javax.ws 包。

我想继续使用新版本的 Jersey ,所以 #2 是我理想的解决方案,但我不确定它是否可行。有谁知道该怎么做?如果那不可能,我愿意接受其他建议。

最佳答案

您可以像这样排除传递依赖模块:

   compile ('org.glassfish.jersey.core:jersey-client:2.17') {
exclude group: 'javax.ws.rs'
exclude module: 'javax.ws.rs-api'
}

引用:50.4.7 here

关于java - 从 Gradle 依赖项中排除包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30942825/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com