参考博客:https://blog.youkuaiyun.com/u012982629/article/details/81121717
- rootProject.ext
app:build.gradle文件内容:引用rootProject.ext.
android {
//这里应用的是根目录下的build.gradle中的ext{}的内容
compileSdkVersion rootProject.ext.compileSdkVersion
defaultConfig {
minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion
}
....
}
上面引用rootProject.ext.xxx实际上是根目录下build.gradle里面ext的内容
根目录build.gradle文件内容:
...
ext {
compileSdkVersion = 28
supportLibVersion = '28.0.3'
minSdkVersion = 21
targetSdkVersion = 26
versionCode = 47
versionName = "1.0.0.47"
}
...
- def
app:build.gradle 文件内容,引用${releaseTime()}
def releaseTime() {
return new Date().format("yyyy-MM-dd", TimeZone.getTimeZone("UTC"))
}
applicationVariants.all { variant ->
variant.outputs.all {
// 输出apk名称为dainty_v1.0_2018-xx-xx_xxxx.apk
def fileName = "rocketb_${defaultConfig.versionName}_${releaseTime()}.apk"
outputFileName = fileName
}
}
- defaultConfig
app:build.gradle文件内容,引用${defaultConfig.xxxx}
android {
...
defaultConfig {
...
versionCode 47
versionName "1.0.0.47"
...
}
applicationVariants.all { variant ->
variant.outputs.all {
// 输出apk名称为dainty_v1.0_2018-xx-xx_xxxx.apk
def fileName = "rocketb_${defaultConfig.versionName}_${releaseTime()}.apk"
outputFileName = fileName
}
}
...
}
- System.env.xx
app:build.gradle文件内容,引用${System.env.xx},xxx是根目录gradle.properties文件里的参数
signingConfigs {
...
releaseConfig {
storeFile "${System.env.MY_APP_PRIVATE_KEY}"
keyAlias "${System.env.MY_APP_ALIAS}"
}
...
}
gradle.properties的文件内容:
...
MY_APP_PRIVATE_KEY="xxx"
MY_APP_ALIAS="x"
...
本文深入解析Gradle构建脚本的高级用法,包括如何在app:build.gradle中引用rootProject.ext变量,动态生成APK文件名,以及使用系统环境变量进行代码签名。通过具体实例,展示了如何利用Gradle的灵活性来优化构建流程。
1036

被折叠的 条评论
为什么被折叠?



