如果一个大的android项目中有几个modules并且有多个Gradle文件需要配置的话,是一个神烦的任务,通常要做的是向每个模块添加依赖项,在本篇文章中将介绍如何使用一个Gradle文件来控制所有模块的依赖项。
我们的目标是将如下的文件:
dependencies {
compile ‘com.android.support:appcompat-v7:24.2.0’
compile ‘com.google.dagger:dagger:2.7’
apt ‘com.google.dagger:dagger-compile:2.7’
compile ‘io.reactivex:rxjava:1.2.0’
compile ‘io.reactivex:rxandroid:1.2.1’
compile ‘com.squareup.okhttp3:okhttp:3.4.1’
compile ‘com.google.code.gson:gson:2.7’
testCompile ‘junit:junit:4.12’
}
转换成如下:
dependencies {
rootProject.appDependencies.each {
add(it.configuration, it.dependency, it.options)
}
}
Dependencies File
为了完成这个转换,首先创建一个文件来管理项目依赖
创建一个文件denpendencies.gradle在项目的根目录下,然后定义所有用到的library的版本号。
ext{
def versionAndroidSDK = '24.2.0'
def versionDagger = '2.7'
def versionRxJava = '1.2.0'
def versionRxAndroid = '1.2.1'
def versionOkHttp = '3.4.1'
def versionGson = '2.7'
def versionJUnit = '4.12'
}
一旦完成,让我们创建依赖映射,为了使文件尽量有组织,将定义三个map,一个用于Android官方库,一个用于第三方库,最后一个用于测试库。
看一下文件的样子:
ext {
//...
///
/// LIBS
///
d