构建全局配置
开发者在写一般的Java代码时,对于多处都要使用的常量,通常会提取出来作为一个全局常量。同样的,在Gradle中也可以使用全局配置,例如在多个module中,要配置compileSdkVersion、buildToolsVersion等参数。
- android {
- compileSdkVersion 23
- buildToolsVersion "23.0.2"
- }
类似于写Java代码,开发者可以使用全局变量统一这些配置。
全局参数
在项目根目录下的build.gradle中,通过ext领域可以指定全局的配置信息,代码如下所示。
- ext {
- compileSdkVersion = 23
- buildToolsVersion = "23.0.2"
- minSdkVersion = 14
- targetSdkVersion = 23
- versionCode = 3
- versionName = "1.0.1"
- }
这些配置基本上是整个项目的总体配置,下面的每个module都需要按照这个方式来进行配置,而不是在某个module中使用单独的配置。这样既不利于项目的管理,也不利用后期问题的分析。
引用配置
在配置好全局参数后,就可以在每个module中使用这些配置了,例如在一个module中,可以通过以下代码获取全局配置。
- android {
- compileSdkVersion rootProject.ext.compileSdkVersion
- }
方法非常简单,通过rootProject.ext可以引用所有的全局参数。
另外,开发者也可以把ext全局配置写在allprojects领域中,这样在每个module中就可以直接引用申明的变量了。
- allprojects {
- repositories {
- jcenter()
- }
- ext {
- COMPILE_SDK_VERSION = 22
- ……
- }
- }
这样写的好处是可以将配置进行统一管理。但坏外是如果这样写的话,Gradle的版本更新通知检查机制就无效了。大部分时候,这种写法是利大于弊的。
