Gradle为何替换build文件中指定的reflections依赖版本?
搞定Gradle依赖版本被覆盖的问题
一、找到0.10版本的来源
- 查依赖树:执行
./gradlew dependencies(Windows环境用gradlew.bat dependencies),在输出里搜索org.reflections:reflections,找到带-> 0.10标记的条目,就能明确是哪个依赖间接引入了该版本。 - 扫全局配置:
- 检查项目根目录的
build.gradle或settings.gradle,看看allprojects/subprojects块里有没有统一的版本管理配置,比如dependencyManagement节点或ext属性定义的版本变量。 - 打开
gradle.properties文件,排查是否存在reflectionsVersion=0.10这类配置项。 - 查看本地Gradle全局配置(
~/.gradle/init.d/下的脚本或~/.gradle/gradle.properties),确认是否全局强制设置了该依赖的版本。
- 检查项目根目录的
- 排查插件:部分第三方插件会自动引入特定版本的依赖,检查项目中应用的插件列表,看看有没有插件附带了reflections 0.10版本。
二、强制使用指定的0.9.12版本
- 直接锁定版本:在依赖声明里添加
force = true,确保Gradle优先使用你指定的版本:compile group: 'org.reflections', name: 'reflections', version: '0.9.12', force: true - 用依赖约束统一控制:在
dependencies块中添加约束,全局把控该依赖的版本:dependencies { constraints { compile 'org.reflections:reflections:0.9.12' } compile group: 'org.reflections', name: 'reflections', version: '0.9.12' } - 排除传递依赖:如果确定是某个依赖间接引入了0.10版本,在对应依赖声明里排除该传递依赖:
compile('com.example:some-dependency:x.y.z') { exclude group: 'org.reflections', module: 'reflections' }
内容的提问来源于stack exchange,提问作者Avis
相关产品推荐
相关产品推荐

