我的 build.gradle.kts 中有以下代码。我现在已经迁移到 kotlin KTS。并需要帮助将此代码从 groovy 翻译为 kotlin 脚本。
fun getVersionFromGit(fallback: String): String {
return try {
if (Os.isFamily(Os.FAMILY_WINDOWS)) {
"git describe --tags --abbrev=0 --match "v*.*.*"".execute().text.substring(1).trim()
} else {
["sh , "-c"", "git describe --tags --abbrev=0 --match "v*.*.*""].execute().text.substring(1).trim()
}
} catch (e: Throwable) {
println("Skipping git version")
fallback
}
}
我收到错误
意外的标记(使用“;”分隔同一行上的表达式)
不支持的[文字前缀和后缀]
未解析的引用:v
需要一个元素
提前非常感谢
更新:
fun getVersionFromGit(fallback: String): String {
return try {
if (Os.isFamily(Os.FAMILY_WINDOWS)) {
"git describe --tags --abbrev=0 --match \"v*.*.*\"".execute().text.substring(1).trim()
} else {
listOf("sh , \"-c\"", "git describe --tags --abbrev=0 --match \"v*.*.*\"").execute().text.substring(1).trim()
}
} catch (e: Throwable) {
println("Skipping git version")
fallback
}
}
最新错误是未解析的引用:执行
最佳答案
看起来您没有正确转义字符串中的引号。
“git 描述 --tags --abbrev=0 --match “v*.*.*””
应该是
“git 描述 --tags --abbrev=0 --match\"v*.*.*\""
关于kotlin - 在我的 build.gradle.kts 文件中将一些代码片段从 groovy 转换为 kotlin KTS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72913327/