配置全局共享变量的好处
- 保持项目中所有的 module 引用的版本一致
- 如果有更新或更换开发环境,便于统一更改
配置步骤
- 项目根目录下新建 common_config.gradle 文件
- 在文件中写明整个项目所有 module 中需要的变量,比如 minSdkVersion 等等
- 在每个 module 都声明一遍文件的引用,或者,在 project 的 build.gralde 中引用一次
- 将所有 module 中的变量都更换为文件中的变量的引用
具体实现
- 新建 common_config.gralde 文件如下
显然,文件中写明了所有项目需要的变量,至此完成了 1、2 两步
project.ext {
//Java 语言有关
javaVersion = 8
javaMaxHeapSize = '4G'
//Android 编译版本相关
compileSdkVersion = 27
buildToolsVersion = "25.1.1"
minSdkVersion = 15
targetSdkVersion = 27
//混淆相关
minifyEnable = true
shrinkResEnable = minifyEnable
//JDK 兼容相关
sourceCompatibility = this.&getJavaVersion()
targetCompatibility = this.&getJavaVersion()
}
def getJavaVersion() {
switch (project.ext.javaVersion) {
case "6":
return JavaVersion.VERSION_1_6
case "7":
return JavaVersion.VERSION_1_7
case "8":
return JavaVersion.VERSION_1_8
default:
return JavaVersion.VERSION_1_6
}
}
-
声明引用,有两种方式(完成 3 )
-
方式一,在每个 module 中都添加如下代码
apply from: "${project.rootDir}/common_config.gradle"
-
方式二,在 project 根目录下的 build.gradle 中添加如下代码
subprojects { apply from: "${project.rootDir}/common_config.gradle" }
-
-
在各个 module 中替换变量,示例如下(完成 4 ):
minSdkVersion project.ext.minSdkVersion targetSdkVersion project.ext.targetSdkVersion ......