如何从Gitlab ci脚本中的kotlin-dsl Gradle文件获取versionName / versionCode?

时间:2018-11-02 19:37:32

标签: grep gitlab yaml gradle-kotlin-dsl

如何从 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"
    }
}

1 个答案:

答案 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视频