8

我正在使用以下代码:

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

有任何想法吗?需要的东西有变化吗?如果情况发生变化,许多其他答案(例如,这个 问题的每个建议答案)也需要更新

4

1 回答 1

12

这是预期的重大更改,列在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了解一些背景信息。

于 2018-08-16T10:23:45.393 回答