2016-01-11 35 views
2

当不同的versions在顶层build.gradle和子模块build.gradle中声明时,哪一个优先?Gradle:在顶层和子模块中声明依赖关系 - 使用哪个?

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

另外,在顶层build.gradle中声明一个依赖项是做什么的?是否应该在子模块中声明所有的依赖关系?

回答

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将被选中。要更改此行为,您可以配置分辨率策略。