在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做同样的事情?
它对未解析引用的复制:Gradle Kotlin DSL 的sourceSet
使用单独的渐变文件时,不能直接引用sourceSet。参考答案:
由于插件是在同一个构建脚本中强制应用的,Gradle不知道插件已经应用,因此无法生成允许访问源集的扩展函数。
如前所述,您可以使用project.the<SourceSetContainer>()
要创建新的源,可以使用Setcreate()
方法。
project.the<SourceSetContainer>().create("unitTest")