使用Gradle統一管理常用庫和版本號

現在AndroidStudio已經是開發Android的主流IDE了,當然還有人在使用Eclipse特別是那些項目中使用自己開發的so文件的公司可能由於各種原因還沒切換到AndroidStudio。在AS中常見的引用庫我們是在我們項目的build.gradle進行引入常用庫,並使用gradle來進行渠道打包等操作。

這裏寫圖片描述

比如上圖中的我們在gradle中引入的常用庫,然後還有一些版本信息如下:

defaultConfig {
        applicationId "neacy.rxdemo"
        minSdkVersion 23
        targetSdkVersion "23.0.2"
        versionCode 1
        versionName "1.0"
    }

是吧一大堆的數字,在我們代碼中如果如果說突然出現一個常量沒有註釋的話我們壓根就不太明白到底是幹嘛用,所以被人稱之爲”魔數”。當然在gradle中的這些數字也有大概的意思,每逢這些常量庫版本升級需要改變版本號、我們項目版本迭代的時候就得每一行進行修改,萬一漏了一處就是個悲劇誕生的開始。

所以我們在根目錄下新建一個config.gradle來進行統一配置

這裏寫圖片描述

然後在裏面聲明腳本代碼來進行配置。

ext{
    android = [compileSdkVersion : 23,
               buildToolsVersion : "23.0.2",
               minSdkVersion     : 14,
               targetSdkVersion  : 23,
               versionCode       : 1,
               versionName       : "1.0"]


    dependencies = ["support-v7"        : 'com.android.support:appcompat-v7:23.+',
                    "design"            : 'com.android.support:design:23.+',
                    "rx_android"        : 'io.reactivex:rxandroid:1.0.1',
                    "rx_binding"        : 'com.jakewharton.rxbinding:rxbinding:0.2.0',
                    "retrofit"          : 'com.squareup.retrofit2:retrofit:2.0.0-beta3',
                    "retrofit_adapter"  : 'com.squareup.retrofit2:adapter-rxjava:2.0.0-beta3']
}

這步完成之後我們需要在根目錄下的build.gradle進行聲明這個config.gradle

這裏寫圖片描述

一切就緒之後,接下來就是在項目的gradle中進行引用即可了。

apply plugin: 'com.android.application'

android {
    compileSdkVersion rootProject.ext.android.compileSdkVersion
    buildToolsVersion rootProject.ext.android.buildToolsVersion

    defaultConfig {
        applicationId "neacy.rxdemo"
        minSdkVersion rootProject.ext.android.minSdkVersion
        targetSdkVersion rootProject.ext.android.targetSdkVersion
        versionCode rootProject.ext.android.versionCode
        versionName rootProject.ext.android.versionName
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile rootProject.ext.dependencies["support-v7"]
    compile rootProject.ext.dependencies["design"]


    // RxAndroid
    compile rootProject.ext.dependencies["rx_android"]
    compile rootProject.ext.dependencies["rx_binding"]

    // Retrofit
    compile rootProject.ext.dependencies["retrofit"]
    compile rootProject.ext.dependencies["retrofit_adapter"]
}

然後每次本部更新之後我們只需要修改config.gradle對應的數字即可了,再也不用怕忘記改漏改了。

發佈了79 篇原創文章 · 獲贊 105 · 訪問量 11萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章