参考博客: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"
...