Gradle:在顶级和子模块中声明依赖关系 - 使用了什么?

时间:2016-01-11 15:07:05

标签: java android gradle dependencies build.gradle

如果在顶级build.gradle和子模块build.gradle中声明了不同的versions依赖项,哪一个优先?

例如,如果在我的顶级build.gradle我有junit:junit:4.8.2但在子模块中有junit:junit:4.10

此外,在顶级build.gradle中声明依赖项的作用是什么?是否应该在子模块中声明所有依赖项?

1 个答案:

答案 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。要更改此行为,您可以配置解决方案策略。