首页 > 解决方案 > 获取任务的属性?在 Gradle 科特林

问题描述

我正在尝试将我的build.gradle文件转换为build.gradle.kts. 我几乎做到了,但只剩下一个问题。我不知道如何转换下面的代码。

科特林

import org.asciidoctor.gradle.AsciidoctorTask

...

apply(plugin = "org.asciidoctor.convert")

val snippetsDir = file("build/generated-snippets")

tasks.named<AsciidoctorTask>("asciidoctor") {
    attributes(
        mapOf(
            "snippets" to snippetsDir
        )
    )
    inputs.dir(snippetsDir)
    dependsOn("test")
}

tasks.withType<BootJar> {
    dependsOn("asciidoctor")

    // This is the problem!
    //  from("${asciidoctor.outputDir}/html5") {
    //      into("static/docs")
    //  }
}

请帮我!谢谢 :)

标签: kotlingradlebuild.gradlegradle-kotlin-dsl

解决方案


请参阅任务文档:您可以使用Kotlin 委托属性asciidoctor访问任务,然后访问其属性,例如outputDir

tasks.withType<org.springframework.boot.gradle.tasks.bundling.BootJar> {
    dependsOn("asciidoctor")

    // This was the problem!
    val asciidoctor by tasks.getting(AsciidoctorTask::class)
    from("${asciidoctor.outputDir}/html5") {
          into("static/docs")
    }
}

推荐阅读