在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中做同样的事情?
答案 0 :(得分:0)
类似于Unresolved reference: sourceSets for Gradle Kotlin DSL
使用单独的gradle文件时,不能直接引用sourceSet。 来自引用的答案:
由于该插件必须在同一构建脚本中应用, Gradle无法知道该插件已应用,因此无法生成 扩展功能允许访问源集。
如前所述,您可以使用project.the<SourceSetContainer>()
可以使用创建新的sourceSet create()
的方法。
project.the<SourceSetContainer>().create("unitTest")