我有一个多模块gradle项目。我正在将所有build.gradle配置文件转换为Kotlin kts。
但是我找不到如何将下面的代码转换为kotlin kts。
我试图将groovy代码放入kts并检查了文档,但找不到任何东西。
testCompile project(":entities").sourceSets.test.output
答案 0 :(得分:0)
经过一番调查,我发现该区域的语法最近发生了变化。
这提供了一些历史记录:
https://github.com/gradle/kotlin-dsl/issues/577
Kotlin DSL 1.0-RC3进行了一些重大更改:
https://github.com/gradle/kotlin-dsl/releases/tag/v1.0-RC3
sourceSets集合在项目上仍然存在:https://docs.gradle.org/5.0/dsl/org.gradle.api.Project.html#org.gradle.api.Project:sourceSets)
我尝试了几种变体,发现:
dependencies {
testImplementation(project(":entities").sourceSets["test"].output)
}
产生
testImplementation(project(":entities").sourceSets["test"].output)
^ 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
但是以下方法可以正常工作:
val entityTests: SourceSetOutput = project(":entities").sourceSets["test"].output
dependencies {
testImplementation(entityTests)
}