如何从 Gitlab ci脚本中的Gradle( Kotlin-DSL )文件中获取我的android项目的 versionName 和 versionCode (gitlab-ci.yaml)?
我有这两个命令可以从gradle-groovy-dsl中获取它们,但是它们在gradle-kotlin-dsl上不起作用。
- export VERSION_NAME=`egrep '^[[:blank:]]+versionName[[:blank:]]' app/build.gradle | awk '{print $2}' | sed s/\"//g`
- export VERSION_CODE=`egrep '^[[:blank:]]+versionCode[[:blank:]]' app/build.gradle | awk '{print $2}'`
groovy-dsl中的示例gradle脚本:
android {
defaultConfig {
versionCode 1
versionName "1.0"
}
}
kotlin-dsl中的示例gradle脚本:
android {
defaultConfig {
versionCode = 1
versionName = "1.0"
}
}
答案 0 :(得分:0)
我了解了有关 Regex 的信息,并了解了操作方法。
您应该更改正则表达式以获取versionName / versionCode,因为分配它们的方式已更改。
您应该这样做:
- export VERSION_NAME=`egrep '[[:blank:]]*versionName[[:blank:]]?=[[:blank:]]?\"((\w|\.)+)\"' app/build.gradle.kts | awk '{print $3}'| sed s/\"//g`
- export VERSION_CODE=`egrep '[[:blank:]]*versionCode[[:blank:]]?=[[:blank:]]?([0-9]+)' app/build.gradle.kts | awk '{print $3}'`
如果您想了解正则表达式,我建议您在youTube上观看this视频