ANDROID STUDIO中统一管理版本号引用配置
为了提高项目开发效率,在实际项目开发过程中往往会引入一些开源框架,还有项目中使用的各种Module,当引入Module过多时最好提供一种统一的方式去管理版本号,如:compileSdkVersion、buildToolsVersion、androidTestCompile 等,便于日后对版本号进行维护,此处记录第2种方式处理上述问题
1.在工程根目录下的build.gradle文件下添加 ext{ .... } 中的内容
// Top-level build file where you can add configuration options common to all sub-projects/modules.
//apply from:"config.gradle"/*引入配置文件:config.gradle*/
buildscript {
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.1.0'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
google()
jcenter()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
ext {
minSdkVersion = 15
targetSdkVersion = 27
compileSdkVersion = 27
supportLibraryVersion = '27.+'
}
//或者使用下面的写法也是可以的
/*project.ext {
minSdkVersion = 15
targetSdkVersion = 27
compileSdkVersion = 27
supportLibraryVersion = '27.+'
}*/
2.在app目录下或者依赖的model目录下的build.gradle中使用 $rootProject.supportLibraryVersion
apply plugin: 'com.android.application'
android {
compileSdkVersion rootProject.ext.compileSdkVersion
defaultConfig {
applicationId "com.example.think"
minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion
versionCode rootProject.ext.versionCode
versionName rootProject.ext.versionName
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation 'com.android.support.constraint:constraint-layout:1.0.2'
implementation "com.android.support:appcompat-v7:$rootProject.supportLibraryVersion"
implementation "com.android.support:cardview-v7:$rootProject.supportLibraryVersion"
implementation "com.android.support:design:$rootProject.supportLibraryVersion"
}
3,进行同步的操作,即可引用成功,如果需要配置版本,我们只需在工程的根目录下的ext {}中进行响应的配置更改即可,这样整个工程中的所有model都会使用相同的版本.