原文鏈接Android Studio 中 Gradle 依賴的統(tǒng)一管理
為什么要對(duì) Gradle 統(tǒng)一管理
在實(shí)際項(xiàng)目中噩茄,經(jīng)常會(huì)出現(xiàn)一個(gè) Project 中有多個(gè) Module 的情況拷况,如果每個(gè) Module 又同時(shí)擁有相同的依賴脓斩,比如 v4 包,那么,每次 v4 包升級(jí)的時(shí)候修改多個(gè) Module 中的 build.gradle 文件,更新其版本都是一件麻煩的事情,而且很有可能忘記某個(gè) Module菲语。所以妄辩,將依賴進(jìn)行統(tǒng)一管理,對(duì)于一個(gè) Project 下?lián)碛卸鄠€(gè) Module 的情況來(lái)說(shuō)是非常必要的山上。
如何管理
假設(shè)你的 Project 結(jié)構(gòu)如下:
root
--module1
--build.gradle
--module2
--build.gradle
...
--build.gradle
使用腳本 config.gradle
為了方便管理眼耀,可以在根目錄下新建 config.gradle 文件
root
--module1
--build.gradle
--module2
--build.gradle
...
--build.gradle
--config.gradle
在 config.gradle 中添加如下代碼(具體情況根據(jù)自己項(xiàng)目來(lái)定):
ext {
android = [
compileSdkVersion: 23,
buildToolsVersion: "24.0.0 rc1",
applicationId : "com.sivan.rxretrofitdemo",
minSdkVersion : 16,
targetSdkVersion : 23,
versionCode : 1,
versionName : "1.0"
]
dependencies = [
"appcompat-v7" : "com.android.support:appcompat-v7:23.3.0",
"rxjava" : "io.reactivex:rxjava:1.1.3",
"rxandroid" : "io.reactivex:rxandroid:1.1.0",
"retrofit" : "com.squareup.retrofit2:retrofit:2.0.0-beta4",
"gson" : "com.google.code.gson:gson:2.6.2",
"converter-gson" : "com.squareup.retrofit2:converter-gson:2.0.0-beta4",
"adapter-rxjava" : "com.squareup.retrofit2:adapter-rxjava:2.0.0-beta4",
"butterknife" : "com.jakewharton:butterknife:7.0.1",
"logging-interceptor": "com.squareup.okhttp3:logging-interceptor:3.0.1"
]
}
OK,依賴寫完了佩憾,那如何在項(xiàng)目中使用呢
在 root 目錄下的build.gradle 中加上apply from: "config.gradle"
接下來(lái)就剩下最后一步了哮伟,在需要添加依賴的 Module 中使用
- android 節(jié)點(diǎn)的使用
android {
compileSdkVersion rootProject.ext.android.compileSdkVersion
buildToolsVersion rootProject.ext.android.buildToolsVersion
defaultConfig {
applicationId rootProject.ext.android.applicationId
minSdkVersion rootProject.ext.android.minSdkVersion
targetSdkVersion rootProject.ext.android.targetSdkVersion
versionCode rootProject.ext.android.versionCode
versionName rootProject.ext.android.versionName
}
}
- dependencies 節(jié)點(diǎn)的使用
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile rootProject.ext.dependencies["appcompat-v7"]
compile rootProject.ext.dependencies["rxjava"]
compile rootProject.ext.dependencies["rxandroid"]
compile rootProject.ext.dependencies["gson"]
compile rootProject.ext.dependencies["converter-gson"]
compile rootProject.ext.dependencies["adapter-rxjava"]
compile rootProject.ext.dependencies["retrofit"]
compile rootProject.ext.dependencies["butterknife"]
}
以后再對(duì)依賴包升級(jí)的時(shí)候直接修改 config.gradle 文件就 OK 了
使用配置文件 gradle.properties
對(duì)依賴進(jìn)行統(tǒng)一管理的另一種方法是使用配置文件 gradle.properties(通常 IDE 會(huì)自動(dòng)生成此文件),在此文件中添加鍵值對(duì):
LOGGING_INTERCEPTOR=com.squareup.okhttp3:logging-interceptor:3.0.1
CARD_VIEW=com.android.support:cardview-v7:23.3.0
在 Module 的 build.gradle 中使用:
dependencies {
compile LOGGING_INTERCEPTOR
compile CARD_VIEW
}
So easy妄帘!