Android Studio 中 Gradle 依賴的統(tǒng)一管理

原文鏈接Android Studio 中 Gradle 依賴的統(tǒng)一管理

為什么要對 Gradle 統(tǒng)一管理

在實際項目中,經常會出現(xiàn)一個 Project 中有多個 Module 的情況,如果每個 Module 又同時擁有相同的依賴,比如 v4 包,那么,每次 v4 包升級的時候修改多個 Module 中的 build.gradle 文件,更新其版本都是一件麻煩的事情,而且很有可能忘記某個 Module。所以,將依賴進行統(tǒng)一管理,對于一個 Project 下?lián)碛卸鄠€ 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 中添加如下代碼(具體情況根據(jù)自己項目來定):

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 節(jié)點的使用
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é)點的使用
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

對依賴進行統(tǒng)一管理的另一種方法是使用配置文件 gradle.properties(通常 IDE 會自動生成此文件),在此文件中添加鍵值對:

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!

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容