Gradle:通过版本分类器覆盖传递依赖关系
2022-08-31 15:50:13
我的项目中声明的依赖项之一对 具有传递依赖项。但是,由于已在 中修复的 CDI 问题,我部署在 WAS/Weblogic 上的应用程序无法正常工作。(相同版本,但带有分类器)我需要告诉 gradle 在构建和打包过程中使用这个罐子。我试图弄清楚我们如何用一个jar特定的版本分类器来疏导这种传递依赖关系。'com.google.guava:guava:15.0'
'com.google.guava:guava:15.0:cdi1.0'
已尝试以下方法:
- 显式添加了依赖项:。但是这两个罐子都被包括在随后的WAR中。
compile 'com.google.guava:guava:15.0:cdi1.0'
-
显式添加了依赖项并定义了解决策略:
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" } } }
即使这样也行不通。
需要您关于如何解决此问题的建议。