我有以下代码在我的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
}
}
最新错误是“未解决的引用:执行”
尝试这样做,但是它可能不会像groovy当前那样被拆分,因为您必须创建函数runCommand来拆分字符串:
fun getVersionFromGit(fallback: String): String {
return try {
if (Os.isFamily(Os.FAMILY_WINDOWS)) {
"git describe --tags --abbrev=0 --match \"v*.*.*\"".runCommand().trim()
} else {
listOf("sh , \"-c\"", "git describe --tags --abbrev=0 --match \"v*.*.*\"").runCommand().trim()
}
} catch (e: Throwable) {
println("Skipping git version")
fallback
}
}
fun String.runCommand(workingDir: File): String? {
...
}
这应该可以做到:
import java.io.ByteArrayOutputStream
fun getVersionFromGit(fallback: String) =
try {
ByteArrayOutputStream().use { out ->
exec {
commandLine = listOf("git", "describe", "--tags", "--abbrev=0", "--match", "v*.*.*")
standardOutput = out
}.assertNormalExitValue()
out.toString().substring(1).trim()
}
} catch (e: Throwable) {
println("Skipping git version")
fallback
}
task("demo") {
println(getVersionFromGit("oops"))
}
在MacOS和Windows上测试。
看起来你没有正确地转义字符串中的引号。
"git描述--tags--abbrev=0--匹配"v*. *.*""
应该是
< code > " git describe-tags-abbrev = 0-match \ " v *。*.*\""
我试图将Groovy中的build.gradle文件转换成kotlin。kts文件,我在gradle文件中有一些我不知道如何正确转换的任务 我不太明白如何使用“类型”,我正在沿着这条路走下去 但它给了我一个错误 类型'DomainObjectCollection 如何正确地将这些Groovy任务转换为kotlin任务?
我有一个我正在迁移到。我唯一无法更改的两个代码段如下。 只是想知道以下内容应该在中 非常感谢任何建议,
我的项目有两个不同的 build.gradle 文件,用时髦的语法编写。我想把这个时髦的 gradle 文件改成一个用 Kotlin Syntax (build.gradle.kts) 编写的 gradle 文件。 我将向您展示根项目build.gradle文件。 我试了几个在网上找的“办法”,都没用。重命名文件显然不是解决问题的办法,也没有帮助。我已经在我的根项目中创建了一个新的build.gr
我有以下java代码: 我想将其转换为smali code 我怎么能这样做?(我尝试了java2smali插件,但失败了)
我是新来的反应。所以请原谅我的天真。我有以下一段反应代码: 我需要在类中转换上面的代码并将其导出:我编写了下面的代码 但是,因为这是一个容器类,所以我不希望在我的this组件类中使用“document..getElementById(“容器”)。我的index.js已经有了 请帮帮我。
问题内容: 这里有新用户。我有一部分这样的结构对象: 哪个切片像: 我想知道如何将结果切片转换为类似字符串的切片: 我试图像这样迭代: } 但是我得到: 因此,感谢您的帮助。 问题答案: 对于您的特定情况,我将“手动”执行: 输出: 如果希望它动态遍历所有字段,则可以使用该程序包。一个辅助函数可以做到这一点: 使用它: 输出是相同的: 在Go Playground上尝试示例。