gpt4 book ai didi

gradle - 将iOS/Android Groovy Gradle文件转换为Kotlin-getBinary,getProperty(+文字属性)?

转载 作者:行者123 更新时间:2023-12-02 13:37:15 25 4
gpt4 key购买 nike

我正在尝试从groovy转换具有iOS和Android目标的项目的gradle文件

我在groovy文件中有这两行

    val srcFile = kotlin.targets."$target".compilations.main.getBinary("FRAMEWORK", buildType)}
val targetDir = getProperty("configuration.build.dir")

第一个挑战是将“$ targets”作为属性。目标是作为字符串的属性,因此就像使用字符串作为属性名称一样。但是我希望 targets是一个 map ,编译也是吗?
    val srcFile = kotlin.targets[target].compilations[main].getBinary("FRAMEWORK", buildType)}
val targetDir = getProperty("configuration.build.dir")

看来是有效的Kotlin,所以我假设groovy就像js,并且[]和都可以访问对象和 map 。记号。假设这是正确的,问题就变成了 getBinarygetProperty都未知。

任何帮助对此表示赞赏。

作为引用,这些行是任务的一部分:
task("copyFramework") {
val buildType:String = project.findProperty("kotlin.build.type") as String??: "DEBUG"
val target:String = project.findProperty("kotlin.target")as String? ?: "ios"
dependsOn("link${buildType.toLowerCase().capitalize()}Framework${target.capitalize()}")

doLast {
val srcFile = kotlin.targets[target].compilations["main"].getBinary("FRAMEWORK", buildType)
val targetDir = getProperty("configuration.build.dir")
copy {
from(srcFile.parent)
into(targetDir)
include("app.framework/**")
include("app.framework.dSYM")
}
}

从groovy转换(到目前为止):
task copyFramework {
def buildType = project.findProperty("kotlin.build.type") ?: "DEBUG"
def target = project.findProperty("kotlin.target") ?: "ios"
dependsOn "link${buildType.toLowerCase().capitalize()}Framework${target.capitalize()}"

doLast {
def srcFile = kotlin.targets."$target".compilations.main.getBinary("FRAMEWORK", buildType)
def targetDir = getProperty("configuration.build.dir")
copy {
from srcFile.parent
into targetDir
include 'app.framework/**'
include 'app.framework.dSYM'
}
}
}

最佳答案

看起来需要类型转换:

val srcFile = (kotlin.targets[target] as KotlinNativeTarget).compilations["main"].getBinary("FRAMEWORK", buildType)

关于gradle - 将iOS/Android Groovy Gradle文件转换为Kotlin-getBinary,getProperty(+文字属性)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53660174/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com