版权声明:尊重博主劳动成果,转载务必注明出处,谢谢! https://blog.csdn.net/gao_chun/article/details/58105089
转载注明gao_chun的Blog:http://blog.csdn.net/gao_chun/article/details/58105089
Gradle统一管理版本号引用配置
为了提高项目开发效率,在实际项目开发过程中往往会引入一些开源框架,还有项目中使用的各种Module,当引入Module过多时最好提供一种统一的方式去管理版本号,如:compileSdkVersion、buildToolsVersion、androidTestCompile 等,便于日后对版本号进行维护,此处记录2种方式处理上述问题。推荐方式二和方式三
方式一
1.在项目根目录下创建.gradle文件,如:config.gradle
2.在根目录下的build.gradle文件中引入我们创建的配置文件
3.config.gradle中文件内容可以自己定义,如下示例:
4.在app目录下的build.gradle中使用
ext { // 用于编译的SDK版本 COMPILE_SDK_VERSION = 23 // 用于Gradle编译项目的工具版本 BUILD_TOOLS_VERSION = "24.0.2" // 最低支持Android版本 MIN_SDK_VERSION = 14 // 目标版本 TARGET_SDK_VERSION = 23 // 设置是否使用混淆 MINIFY_ENABLED = true MINIFY_DISABLED = false // 应用程序包名 APPLICATION_ID = 'com.mainiway.eworkpal' // Version of "com.android.support:appcompat-v7", refer it as folow: // compile "com.android.support:appcompat-v7:${APPCOMPAT_VERSION}" APPCOMPAT_VERSION = '23.2.1' }
dependencies { compile fileTree(include: ['*.jar'], dir: 'libs') compile "com.android.support:cardview-v7:${APPCOMPAT_VERSION}" compile "com.android.support:appcompat-v7:${APPCOMPAT_VERSION}" compile "com.android.support:design:${APPCOMPAT_VERSION}" compile 'com.github.bumptech.glide:glide:3.7.0' }
方式二(推荐)
1.在根目录下的build.gradle文件下添加 ext{ .... } 中的内容
// Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:2.2.3' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } } allprojects { repositories { jcenter() maven { url "https://jitpack.io" } } } task clean(type: Delete) { delete rootProject.buildDir } // Define versions in a single place ext { // SDK And Tools minSdkVersion = 14 targetSdkVersion = 23 compileSdkVersion = 23 buildToolsVersion = '24.0.2' //Dependencies supportLibraryVersion = '23.2.1' }
2.在app目录下build.gradle中使用 $rootProject.supportLibraryVersion
apply plugin: 'com.android.application' android { compileSdkVersion rootProject.ext.compileSdkVersion buildToolsVersion rootProject.ext.buildToolsVersion defaultConfig { applicationId 'com.mainiway.demo' minSdkVersion rootProject.ext.minSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion versionCode 1 versionName "1.0.0" } } dependencies { compile fileTree(include: ['*.jar'], dir: 'libs') compile "com.android.support:cardview-v7:$rootProject.supportLibraryVersion" compile "com.android.support:appcompat-v7:$rootProject.supportLibraryVersion" compile "com.android.support:design:$rootProject.supportLibraryVersion" }
方式三(推荐)
也可以在根目录下的 build.gradle 文件中声明 ext{ .... } 时, 加上一个变量 var ,如:
ext { var = [ // SDK And Tools minSdkVersion : 14, targetSdkVersion : 25, compileSdkVersion : 25, buildToolsVersion : "25.0.2", versionName : "1.0.0", //Dependencies supportLibraryVersion: "25.2.0" ] }
对应的引用方式:
android { compileSdkVersion var.compileSdkVersion buildToolsVersion var.buildToolsVersion defaultConfig { applicationId "com.xxx.xxx" minSdkVersion var.minSdkVersion targetSdkVersion var.targetSdkVersion versionCode 1 versionName var.version } ...... } dependencies { compile "com.android.support:appcompat-v7:$var.supportLibraryVersion" compile "com.android.support:recyclerview-v7:$var.supportLibraryVersion" compile "com.android.support:cardview-v7:$var.supportLibraryVersion" }
或者像这样:
ext { minSdkVersion: 14, targetSdkVersion: 25, compileSdkVersion: 25, buildToolsVersion: "25.0.2", versionName: "1.0.0", //Dependencies supportLibraryVersion: "25.2.0" var = [ SupportV7 : "com.android.support:appcompat-v7:$supportLibraryVersion", SupportV4 : "com.android.support:support-v4:$supportLibraryVersion", SupportRecyclerviewV7 : "com.android.support:recyclerview-v7:$supportLibraryVersion" ] }
那么对应的引用方式要做一点点变化:
android { compileSdkVersion rootProject.compileSdkVersion buildToolsVersion rootProject.buildToolsVersion defaultConfig { applicationId "com.xxx.xxx" minSdkVersion rootProject.minSdkVersion targetSdkVersion rootProject.targetSdkVersion versionCode 1 versionName var.version } ... ... } dependencies { compile var.SupportV7 compile var.SupportV4 compile var.SupportRecyclerviewV7 }
选一种适合规范方式,这样一来,管理各个版本号就方便多了。