Gradle Kotlin DSL 配置编译错误 Java 规范
Gradle Compilation Error with Kotlin DSL configuring Java Spec
我正在尝试为 Kotlin 项目创建构建文件,该项目有时会包含 java 源代码。过去在多项目构建中使用基于 Groovy 的构建文件时,我可以毫无问题地在 subproject
块中指定 sourceCompatibility
。对于 Kotlin DSL,我知道它必须在 java
块中才能使用 Kotlin DSL 配置,但是当我尝试从根 build.gradle.kts
文件中的 subproject
块进行配置时,我得到编译错误:
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
我已将 gist 添加到我正在使用的 gradle 构建文件中。现在,如果我在子项目 build.gradle.kts
文件之一中指定 java 块,我就可以让它工作,但我希望将设置应用于所有子项目,而不仅仅是特定项目。
你可以直接使用
configure<JavaPluginExtension> { ... }
我正在尝试为 Kotlin 项目创建构建文件,该项目有时会包含 java 源代码。过去在多项目构建中使用基于 Groovy 的构建文件时,我可以毫无问题地在 subproject
块中指定 sourceCompatibility
。对于 Kotlin DSL,我知道它必须在 java
块中才能使用 Kotlin DSL 配置,但是当我尝试从根 build.gradle.kts
文件中的 subproject
块进行配置时,我得到编译错误:
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
我已将 gist 添加到我正在使用的 gradle 构建文件中。现在,如果我在子项目 build.gradle.kts
文件之一中指定 java 块,我就可以让它工作,但我希望将设置应用于所有子项目,而不仅仅是特定项目。
你可以直接使用
configure<JavaPluginExtension> { ... }