sourceSets with gradle kotlin DSL in grade 4.10rc

sourceSets with gradle kotlin DSL in grade 4.10rc

我正在使用以下代码:

java.sourceSets["main"].java {
    srcDir("src/main/extraSource")
}

在 gradle 4.9 中完美运行,但在 4.10 rc1 中出现以下错误:

  Line 5: java.sourceSets["main"].java {
               ^ Unresolved reference. None of the following candidates is applicable because of receiver type mismatch: 
                   public val Project.sourceSets: SourceSetContainer defined in org.gradle.kotlin.dsl

有什么想法吗?需要的东西有变化吗? 许多其他答案(例如 和该问题的每个建议答案)也将需要更新,如果这已经改变

这是预期的重大更改,列在 https://docs.gradle.org/4.10-rc-2/release-notes.html#changes-to-the-gradle-kotlin-dsl

但不幸的是,它在 Kotlin DSL 发行说明中缺失,它将在 4.10 GA 中修复。

简而言之,java.sourceSets 现在是 sourceSets。对于您的示例,固定脚本是:

sourceSets["main"].java {
    srcDir("src/main/extraSource")
}

这是 gradle/gradle 的变化,请参阅 https://github.com/gradle/gradle/pull/5867 了解一些背景信息。