构建全局配置

开发者在写一般的Java代码时,对于多处都要使用的常量,通常会提取出来作为一个全局常量。同样的,在Gradle中也可以使用全局配置,例如在多个module中,要配置compileSdkVersion、buildToolsVersion等参数。

  1. android {
  2. compileSdkVersion 23
  3. buildToolsVersion "23.0.2"
  4. }

类似于写Java代码,开发者可以使用全局变量统一这些配置。

全局参数

在项目根目录下的build.gradle中,通过ext领域可以指定全局的配置信息,代码如下所示。

  1. ext {
  2. compileSdkVersion = 23
  3. buildToolsVersion = "23.0.2"
  4. minSdkVersion = 14
  5. targetSdkVersion = 23
  6. versionCode = 3
  7. versionName = "1.0.1"
  8. }

这些配置基本上是整个项目的总体配置,下面的每个module都需要按照这个方式来进行配置,而不是在某个module中使用单独的配置。这样既不利于项目的管理,也不利用后期问题的分析。

引用配置

在配置好全局参数后,就可以在每个module中使用这些配置了,例如在一个module中,可以通过以下代码获取全局配置。

  1. android {
  2. compileSdkVersion rootProject.ext.compileSdkVersion
  3. }

方法非常简单,通过rootProject.ext可以引用所有的全局参数。

另外,开发者也可以把ext全局配置写在allprojects领域中,这样在每个module中就可以直接引用申明的变量了。

  1. allprojects {
  2. repositories {
  3. jcenter()
  4. }
  5. ext {
  6. COMPILE_SDK_VERSION = 22
  7. ……
  8. }
  9. }

这样写的好处是可以将配置进行统一管理。但坏外是如果这样写的话,Gradle的版本更新通知检查机制就无效了。大部分时候,这种写法是利大于弊的。