Почему:
val runVersionSplicer by tasks.registering(type = JavaExec::class) {
classpath = sourceSets.main.runtimeClasspath // error
main = "com.concurnas.build.VersionSplicer"
}
возвращает:
Неразрешенная ссылка. Ни один из следующих кандидатов не подходит из-за несоответствия типа получателя: publi c val NamedDomainObjectContainer.runtimeClasspath: NamedDomainObjectProvider, определенный в org.gradle. kotlin .dsl
Хотя вместо этого это работает нормально?
val runVersionSplicer by tasks.registering(type = JavaExec::class) {
classpath = sourceSets["main"].runtimeClasspath
main = "com.concurnas.build.VersionSplicer"
}
Я знаю, что sourceSets.main
определяется таким образом:
val org.gradle.api.tasks.SourceSetContainer.`main`: NamedDomainObjectProvider<org.gradle.api.tasks.SourceSet>
get() = named<org.gradle.api.tasks.SourceSet>("main")
Однако не предполагается, что конструкция sourceSets["main"]
заменяет конструкцию