【发布时间】:2018-03-13 16:31:04
【问题描述】:
基于this answer,我意识到我们可以使用Gradle 变量(我当然不熟悉Gradle,所以请原谅我的术语)在许多Android 项目中实现一些一致性。
例如,我想从这里更改android 闭包配置:
android {
compileSdkVersion 27
buildToolsVersion '27.0.3'
defaultConfig {
minSdkVersion 16
targetSdkVersion 27
versionCode 1
versionName "1.0"
}
}
到这里:
android {
compileSdkVersion configurationVariables.sdk
buildToolsVersion configurationVariables.buildToolsVersion
defaultConfig {
minSdkVersion configurationVariables.minSdk
targetSdkVersion configurationVariables.targetSdk
versionCode 1
versionName "1.0"
}
}
但是,我收到此错误:
错误:(5, 0) 启动失败:构建文件 'path_to_android\build.gradle': 5: 语句标签不能用于 构建脚本。如果您尝试配置一个名为 'buildToolsVersion',将':'替换为'='或'',否则会 没有达到预期的效果。 @ 第 5 行,第 24 列。 buildToolsVersion:configurationVariables.buildToolsVersion
如何使用变量来集中跨项目和模块的构建配置?
更新:我将configurationVariables 定义如下:
ext {
configurationVariables = [
sdk = 27,
buildToolsVersion = "27.0.3",
minSdk = 16,
targetSdk = 27
]
}
我将它写在一个config.gradle 文件中,并使用apply from 将它导入到根项目 的build.gradle 中以将其应用于所有子项目。
【问题讨论】:
-
你是如何定义
configurationVariables的?