我正在使用以下代码:
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
有什么想法吗?需要的东西有变化吗? 如果情况发生变化,许多其他答案(例如 this one 和此问题的每个建议答案)也需要更新
最佳答案
这是预期的重大更改,列于 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了解一些背景。
关于kotlin - sourceSets with gradle kotlin DSL in Grade 4.10rc,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51832571/