我正在尝试为Kotlin项目创建一个构建文件,该文件有时会包含Java源代码。过去,在多项目构建中使用基于Groovy的构建文件时,我可以毫无问题地在sourceCompatibility
块中指定subproject
。使用Kotlin DSL,我知道它必须位于java
块中才能与Kotlin DSL进行配置,但是当我尝试从根subproject
文件中的build.gradle.kts
块执行此操作时,编译错误:
Script compilation errors:
Line 14: java {
^ Expression 'java' cannot be invoked as a function. The function 'invoke()' is not found
Line 14: java {
^ Unresolved reference. None of the following candidates is applicable because of receiver type mismatch:
public val PluginDependenciesSpec.java: PluginDependencySpec defined in org.gradle.kotlin.dsl
Line 15: sourceCompatibility = JavaVersion.VERSION_1_8
^ Unresolved reference: sourceCompatibility
3 errors
我在正在使用的gradle构建文件中包含了gist。现在,如果我在子项目build.gradle.kts
文件之一中指定java块,就可以使它工作,但是我希望将设置应用于所有子项目,而不仅仅是特定项目。
答案 0 :(得分:4)
您可以使用
configure<JavaPluginExtension> { ... }