2

在 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 中为 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 中做同样的事情?

4

1 回答 1

0

它与 Unresolved reference 的重复:Gradle Kotlin DSL 的 sourceSets

使用单独的 gradle 文件时不能直接引用 sourceSet。从参考答案:

由于插件在同一个构建脚本中被强制应用,Gradle 无法知道插件被应用,因此无法生成允许访问源集的扩展函数。

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

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

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

于 2020-07-02T12:48:49.053 回答