Android Studio 中 Gradle 依賴的統一管理

原文鏈接[Android Studio 中 Gradle 依賴的統一管理]
http://www.lxweimin.com/p/a092bcc3de7d

為什么要對 Gradle 統一管理
在實際項目中,經常會出現一個 Project 中有多個 Module 的情況,如果每個 Module 又同時擁有相同的依賴,比如 v4 包,那么,每次 v4 包升級的時候修改多個 Module 中的 build.gradle 文件,更新其版本都是一件麻煩的事情,而且很有可能忘記某個 Module。所以,將依賴進行統一管理,對于一個 Project 下擁有多個 Module 的情況來說是非常必要的。
如何管理
假設你的 Project 結構如下:
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 中添加如下代碼(具體情況根據自己項目來定):
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,依賴寫完了,那如何在項目中使用呢
在 root 目錄下的build.gradle 中加上apply from: "config.gradle"

接下來就剩下最后一步了,在需要添加依賴的 Module 中使用
android 節點的使用

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 節點的使用

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"]}

以后再對依賴包升級的時候直接修改 config.gradle 文件就 OK 了
使用配置文件 gradle.properties
對依賴進行統一管理的另一種方法是使用配置文件 gradle.properties(通常 IDE 會自動生成此文件),在此文件中添加鍵值對:
LOGGING_INTERCEPTOR=com.squareup.okhttp3:logging-interceptor:3.0.1CARD_VIEW=com.android.support:cardview-v7:23.3.0

在 Module 的 build.gradle 中使用:
dependencies { compile LOGGING_INTERCEPTOR compile CARD_VIEW}

So easy!

作者:遇見67鏈接:http://www.lxweimin.com/p/a092bcc3de7d來源:簡書著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容