使用 kotlin-dsl 访问源集 gradle

Accessing source sets with kotlin-dsl for gradle

如何转换以下 groovy 片段

URL[] urls = sourceSets.main.runtimeClasspath.files.collect {
    it.toURI().toURL()
}

到 kotlin-dsl?特别是 属性 sourceSets 似乎不可用并且无法编译。

如何访问任务中的 sourceSets?

runtimeClasspath 没有 sourceSetclasspathsourceSet 不同。但是,如果您有兴趣获得例如使用 kotlin-dsl 的项目的 main-sourceset,这里是一个片段:

java {
    val files: Set<File> = sourceSets["main"].java.srcDirs
    println(files)
}

从任务访问 sourceSet

task("hello-src-set") {
    val files: Set<File> = java.sourceSets["main"].java.srcDirs
    println(files)
}