等级为4.10rc的gradle kotlin DSL的sourceSets

时间:2018-08-14 01:33:04

标签: kotlin gradle-kotlin-dsl

我正在使用以下代码:

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和该问题的每个建议答案)也需要更新,

1 个答案:

答案 0 :(得分:11)

这是预期的重大更改,列在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以获得一些背景知识。