如果在顶级build.gradle和子模块build.gradle中声明了不同的versions
依赖项,哪一个优先?
例如,如果在我的顶级build.gradle
我有junit:junit:4.8.2
但在子模块中有junit:junit:4.10
?
此外,在顶级build.gradle
中声明依赖项的作用是什么?是否应该在子模块中声明所有依赖项?
答案 0 :(得分:3)
有
// root build.gradle
subprojects {
dependencies {
compile "junit:junit:4.10"
}
}
和
// submodule build.gradle
dependencies {
compile "junit:junit:4.8.2"
}
与
基本相同// submodule build.gradle
dependencies {
compile "junit:junit:4.8.2"
compile "junit:junit:4.10"
}
这意味着您在子模块中声明了两个版本的junit。现在Gradle冲突解决方案在这里开始了。默认分辨率为
依赖冲突是选择较新的版本。因此将选择junit 4.10
。要更改此行为,您可以配置解决方案策略。