as中统一管理版本号

项目中module很多的时候,各module中build.gradle文件中的compileSdkVersion、buildToolsVersion及依赖库版本(如appcompat-v7)可能存在版本不一致的问题。
针对该问题,解决方案是:统一管理版本号

  1. config.gradle文件创建
  2. 版本号引用

1.config.gradle

在项目根目录下创建config.gradle文件,具体内容自定义:

ext{
    androidBuildToolsVersion = "26.0.2"
    androidMinSdkVersion = 16
    androidTargetSdkVersion = 26
    androidCompileSdkVersion = 26
    supportLibraryVersion = '26.+'


    // 设置是否使用混淆
    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 = '26.+'
    version = '1.5'
    android = [
            recyclerView: "com.android.support:recyclerview-v7:${supportLibraryVersion}",
            appcompat_v7: "com.android.support:appcompat-v7:${supportLibraryVersion}",
            support_v4  : "com.android.support:support-v4:${supportLibraryVersion}",
    ]

    view = [
            aaaaaa: "com.xxxxxx:aaaaaa:${version}",
    ]
}

当然,你也可以将config.gradle的内容直接写在项目根目录下的build.gradle文件中。

2.版本号引用

首先需要在根目录下的build.gradle文件中,添加对config.gradle文件的引用

apply from: 'config.gradle'

如果config.gradle的内容直接写在了build.gradle文件中,上面的引用步骤可以忽略。

添加引用后,就可以在module的build.gradle文件中引用设置的版本号。
关键代码:
rootProject.ext.***
$rootProject.APPCOMPAT_VERSION

android {
    compileSdkVersion rootProject.ext.androidCompileSdkVersion
    buildToolsVersion rootProject.ext.androidBuildToolsVersion
    defaultConfig {
        applicationId "com.***.myvideodemo"
        minSdkVersion rootProject.ext.androidMinSdkVersion
        targetSdkVersion rootProject.ext.androidTargetSdkVersion
        versionCode 1
        versionName "1.0"
    }    
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    ...
    compile "com.android.support:appcompat-v7:$rootProject.APPCOMPAT_VERSION"
    
}

说明一个坑:
compile "com.android.support:appcompat-v7:$rootProject.APPCOMPAT_VERSION"
compile后面必须使用双引号,如果使用单引号,编译报错

image.png

你可能感兴趣的:(as中统一管理版本号)