如何将root build.gradle中的Gradle Groovy方法转换为build.gradle.kts中的Gradle Kotlin DSL函数

时间:2018-12-19 22:00:55

标签: gradle-kotlin-dsl

在Gradle Groovy根build.gradle中,我定义了一些方法。例如:

File[] getFiles(String path) {
    // do some filtering here and return result array
    return result
}

在模块build.gradle中,我定义了一些任务,可以调用上述方法。例如:

tasks.register("copyFiles") {
    doLast {
        for (String path : pathList) {
            File[] files = getFiles(path)
            // do something with returned files
        }
    }
}

在Groovy中可以。现在,我将build.gradle转换为Kotlin DSL build.gradle.kts

我尝试将lambda设置为额外的属性,但没有成功。它们通常会因异常而失败:

Could not find method getFiles() for arguments ...

感谢您的建议。

1 个答案:

答案 0 :(得分:0)

val copyFile by creating(Copy::class) 
{
        into(project.directory)
        into("path") {
            from(bootJar.get().archiveFile.get())

        } 
}

这会将您的文件复制到in()提及的多个位置