【发布时间】:2015-08-24 01:32:06
【问题描述】:
我的项目中声明的依赖项之一对'com.google.guava:guava:15.0' 具有传递依赖项。但是由于'com.google.guava:guava:15.0:cdi1.0' 中已修复的 CDI 问题,我在 WAS/Weblogic 上部署的应用程序无法运行。 (相同版本,但带有分类器)我需要告诉 gradle 在构建和打包过程中使用这个 jar。我试图弄清楚我们如何使用特定于 jar 的版本分类器来覆盖这种传递依赖。
尝试了以下方法:
- 显式添加了依赖项:
compile 'com.google.guava:guava:15.0:cdi1.0'。但是这两个 jar 都包含在生成的 WAR 中。 -
显式添加依赖并定义解析策略:
configurations.all { resolutionStrategy { force 'com.google.guava:guava:15.0:cdi1.0' } }即使这样也没有用。
-
定义了检查和更改版本的解决策略。
configurations.all { resolutionStrategy.eachDependency { DependencyResolveDetails details -> if (details.requested.group + ":" + details.requested.name == 'com.google.guava:guava') { details.useVersion "15.0:cdi1.0" //details.useTarget "com.google.guava:guava:15.0:cdi1.0" } } }即使这样也没有用。
需要您就如何解决此问题提出建议。
【问题讨论】:
标签: java maven gradle guava dependency-management