Gradle项目中如何排除com.google.guava的Android变体依赖
解决Guava变体选择冲突问题
针对你遇到的com.google.guava:guava:32.1.2-jre的androidApiElements和jreApiElements变体选择冲突,以下是几种可行的解决方案,确保Web应用使用JRE变体:
方法1:全局强制指定Guava的JRE变体
在build.gradle中添加解析策略,对所有Guava依赖强制选择jreApiElements变体:
configurations.all { resolutionStrategy { eachDependency { details -> if (details.requested.group == 'com.google.guava' && details.requested.name == 'guava') { details.useVariant('jreApiElements') { because 'Web应用需使用JRE变体,排除Android相关变体' } } } } }
方法2:禁用Android相关属性
通过配置属性让Gradle自动排除Android兼容的变体,可在项目根目录的gradle.properties中添加:
android.enabled=false
或者在build.gradle的根级别添加:
android.enabled=false
方法3:显式声明Guava依赖并指定JRE能力
直接声明Guava依赖时,明确要求其JRE能力,覆盖传递依赖的变体选择:
implementation('com.google.guava:guava:32.1.2-jre') { capabilities { requireCapability('com.google.guava:guava-jre') } }
以上方法均可解决变体选择冲突,其中方法1和方法3的可移植性更强,适合跨环境构建。
内容的提问来源于stack exchange,提问作者Sachu
相关产品推荐
相关产品推荐

