Gradle統一依賴管理

目的:

避免在依賴包出新版本時,需要對每個module中的build.gradle文件都進行修改(如appcompat-v7包),使用這種方式即只需一次修改。

方法一

  • 在項目的根目錄創建一個gradle配置文件config.gradle,格式如下(內容根據需要進行修改):
    項目中所有的依賴只要在這個文件中統一做一次修改即可。
ext {
        android_support_version = '23.2.0'

        android = [ compileSdkVersion: 23 ,
                   buildToolsVersion: "23.0.2",
                   applicationId    : "com.wiky.test" ,
                   minSdkVersion    : 14 ,
                   targetSdkVersion : 23,
                   versionCode      : 1 ,
                   versionName      : "1.0" ]

        dependencies = [
                //android.support
                "appcompat-v7"   : "com.android.support:appcompat-v7: ${android_support_version}",
                "design"         : "com.android.support:design: ${android_support_version}",
                "recyclerview-v7" : "com.android.support:recyclerview-v7: ${android_support_version}",
        ] }
  • 其次在根目錄的build.gradle文件中添加內容(apply from:”config.gradle”),如圖:
    這裏寫圖片描述

    加上這一行代碼,意思就是所有的module都可以從這個(config.gradle)配置文件裏讀取內容。

  • 在app(module)目錄下的build.gradle文件中使用如下:

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 {
          ...
          compile rootProject .ext.dependencies[ "design"]
          compile rootProject .ext.dependencies[ "appcompat-v7"]
          compile rootProject .ext.dependencies[ "recyclerview-v7"]
          ...
      }

方法二:

  • config.gradle 文件如下
ext {
    // Version of compile sdk
    COMPILE_SDK_VERSION = 23
    // Version of Android build tool
    BUILD_TOOLS_VERSION = "23.0.3"
    // Min version of Android sdk
    MIN_SDK_VERSION = 9
    // Version of target Android sdk
    TARGET_SDK_VERSION = 23
    // Use progurad or not
    MINIFY_ENABLED = true
    MINIFY_DISABLED = false
    // Version of "com.android.support:appcompat-v7", refer it as folow:
    //  compile "com.android.support:appcompat-v7:${APPCOMPAT_VERSION}"
    APPCOMPAT_VERSION = '23.2.0'
    // Version of "junit", refer it as folow:
    //  compile "junit:junit:${JUNIT_VERSION}"
    JUNIT_VERSION= '4.12'
}
  • 其次在根目錄的build.gradle文件中添加內容(apply from:”config.gradle”),如圖:
    這裏寫圖片描述

  • 在app(module)目錄下的build.gradle文件中使用如下:

apply plugin : 'com.android.library'
android {
    compileSdkVersion COMPILE_SDK_VERSION
    buildToolsVersion BUILD_TOOLS_VERSION
    defaultConfig {
        minSdkVersion MIN_SDK_VERSION
        targetSdkVersion TARGET_SDK_VERSION
        versionCode 1
        versionName "1.0.0"
    }
    buildTypes {
        release {
            minifyEnabled MINIFY_DISABLED
            proguardFiles getDefaultProguardFile('proguard-android.txt' ), 'proguard-rules.pro'
        }
    }
}
dependencies {
    compile fileTree(dir : 'libs', include: ['*.jar' ])
    testCompile "junit:junit: ${JUNIT_VERSION} "
    compile "com.android.support:appcompat-v7: ${APPCOMPAT_VERSION} "
}

方法三

在屬性文件(gradle.properties)中配置(google i/o 2015用的是這種方式):

如:在gradle.properties中配置相應的版本號(可以理解爲定義一個常量參數)
這裏寫圖片描述

在app/build.gradle中使用如:

這裏寫圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章