当前位置: 首页 > 知识库问答 >
问题:

将Groovy任务build.gradle转换为kotlin kts文件

殷建弼
2023-03-14

我试图将Groovy中的build.gradle文件转换成kotlin。kts文件,我在gradle文件中有一些我不知道如何正确转换的任务

task androidJavadocs(type: Javadoc) {
    failOnError = false
    source = android.sourceSets.main.java.srcDirs
    ext.androidJar = "${android.sdkDirectory}/platforms/${android.compileSdkVersion}/android.jar"
    classpath += files(ext.androidJar)
    exclude '**/R.html', '**/R.*.html', '**/index.html'
}

task androidJavadocsJar(type: Jar, dependsOn: androidJavadocs) {
    classifier = 'javadoc'
    from androidJavadocs.destinationDir
}

我不太明白如何使用“类型”,我正在沿着这条路走下去

val androidJavadocs by tasks.withType<Javadoc>(){

}

但它给了我一个错误

类型'DomainObjectCollection

如何正确地将这些Groovy任务转换为kotlin任务?

共有1个答案

万俟经纶
2023-03-14

可以使用 named() 方法配置现有任务,并使用 register() 方法创建新任务。

tasks {
    register<Javadoc>("androidJavadocs") {
        // Task's body here
    }
}

// or

tasks.register<Javadoc>("androidJavadocs") {
    // Task's body here
}

如果要使用静态编程语言委托属性

val androidJavadocs by tasks.registering(Javadoc::class) {
    // Task's body here
}

你问题的完整答案

val androidJavadocs by tasks.registering(Javadoc::class) {
    isFailOnError = false
    source = android.sourceSets.main.java.srcDirs
    ext["androidJar"] = "${android.sdkDirectory}/platforms/${android.compileSdkVersion}/android.jar")
    classpath += files(ext["androidJar"])
    exclude("**/R.html", "**/R.*.html", "**/index.html")
}

val androidJavadocsJar by tasks.registering(Jar::class) {
    classifier = "javadoc"
    dependsOn(androidJavadocs)
    from(androidJavadocs.get().destinationDir)
}
 类似资料:
  • 我的项目有两个不同的 build.gradle 文件,用时髦的语法编写。我想把这个时髦的 gradle 文件改成一个用 Kotlin Syntax (build.gradle.kts) 编写的 gradle 文件。 我将向您展示根项目build.gradle文件。 我试了几个在网上找的“办法”,都没用。重命名文件显然不是解决问题的办法,也没有帮助。我已经在我的根项目中创建了一个新的build.gr

  • 我正在编写一个jenkins管道,我需要将String参数转换为Long值。 我已经使用Long.value,Long.parse。我得到这个错误消息: Hudson . remoting . proxy exception:groovy . lang . missingmethodexception:没有方法的签名:java.lang.Class.parseLong()适用于参数类型:(java

  • 我有以下代码在我的build.gradle.kts.我现在已经迁移到kotlin KTS。并需要帮助将此代码从groovy转换为kotlin脚本。 我有错误 非常感谢 更新: 最新错误是

  • 问题内容: 我有一个JSON文件,在此JSON文件中使用解析器将其转换为XML格式,然后写回xml文件 我在Groovy中找不到有关如何执行此操作的任何示例 如果我有如下所示的JSON: 然后,应将其转换为如下所示的XML: 我一直在寻找JSON到XML转换代码 问题答案: 如果您使JSON有效(将名称四舍五入,并且在初始块中加一个逗号),则可以执行此操作以将其转换(专门针对此示例) 我不知道将x

  • 本文向大家介绍groovy 将方法转换为闭包,包括了groovy 将方法转换为闭包的使用技巧和注意事项,需要的朋友参考一下 示例 可以使用&运算符将方法转换为闭包。            

  • 我有一个启动H2数据库的gradle ant任务。构建脚本如下所示: