未解决的参考:sourceSets-Gradle Kotlin DSL在另一个文件中

时间:2019-01-23 14:16:48

标签: gradle kotlin build.gradle gradle-kotlin-dsl source-sets

在Gradle(Groovy)中,我曾经这样做来配置源集:

build.gradle

apply plugin: 'java'
apply from: 'gradle/test.gradle'

gradle/test.gradle

sourceSets {
    unitTest {
        compileClasspath += main.output
        runtimeClasspath += main.output
    }
}

然后我将使用unitTest源集来创建任务。

当我尝试在IntelliJ for Gradle KTS中执行相同操作时:

build.gradle.kts

plugins {
    java
}

apply(from = "gradle/test.gradle.kts")

gradle/test.gradle.kts

sourceSets {
    create("unitTest") {
     // Do configurations
    }
}

如果失败并出现Unresolved reference: sourceSets错误。

我怎么在Kotlin Gradle中做同样的事情?

1 个答案:

答案 0 :(得分:0)

类似于Unresolved reference: sourceSets for Gradle Kotlin DSL

使用单独的gradle文件时,不能直接引用sourceSet。 来自引用的答案:

由于该插件必须在同一构建脚本中应用, Gradle无法知道该插件已应用,因此无法生成 扩展功能允许访问源集。

如前所述,您可以使用project.the<SourceSetContainer>()

可以使用创建新的sourceSet create()的方法。

project.the<SourceSetContainer>().create("unitTest")