Gradle同时下载Gson 2.9.0与2.8.6,如何强制仅使用2.9.0?
解决Gradle强制使用Gson 2.9.0版本的问题
第一步:定位旧版本依赖来源
先运行Gradle命令查看依赖树,找到哪个传递依赖引入了Gson 2.8.6:
./gradlew dependencies --configuration runtimeClasspath
在输出中搜索com.google.code.gson:gson,找到类似这样的条目:
+--- com.example.some-dependency:1.0.0 | +--- com.google.code.gson:gson:2.8.6
这就能明确是哪个依赖带进来的旧版本Gson。
第二步:针对性排除传递依赖
找到来源后,在对应的依赖声明中排除旧版本Gson:
implementation('com.example.some-dependency:1.0.0') { exclude group: 'com.google.code.gson', module: 'gson' }
第三步:全局强制版本(最可靠的方式)
在项目根目录的build.gradle(或模块的build.gradle)中添加全局版本强制策略,覆盖所有配置:
configurations.all { resolutionStrategy { force 'com.google.code.gson:gson:2.9.0' } }
然后在依赖块中明确声明需要的版本:
implementation 'com.google.code.gson:gson:2.9.0'
第四步:清理Gradle缓存并重新构建
有时候旧版本依赖会被Gradle缓存,执行以下命令强制刷新:
./gradlew clean build --refresh-dependencies
常见问题排查
- 确认依赖配置类型:不要用
compileOnly除非你明确只在编译时需要Gson,compileOnly不会影响运行时依赖,旧版本可能仍会被其他传递依赖引入。 - 多模块项目检查:如果是多模块项目,确保所有子模块都应用了相同的版本强制策略,或者根项目的
build.gradle中统一配置。 - 检查依赖声明笔误:你最初的依赖声明
implementation 'com.google.code.gson:gson.2.9.0有笔误(应该是gson:2.9.0),虽然后续尝试中修正了,但要确保所有地方的依赖写法正确。
内容的提问来源于stack exchange,提问作者PassionateAbtCoding
相关产品推荐
相关产品推荐

