我正在尝试为 Kotlin 项目创建一个构建文件,该项目有时会包含 java 源代码。过去,在多项目构建中使用基于 Groovy 的构建文件时,我可以在 subproject
block 中指定 sourceCompatibility
,没有任何问题。对于 Kotlin DSL,我知道它必须在 java
block 中才能使用 Kotlin DSL 进行配置,但是当我尝试从根 中的
文件我收到编译错误:subproject
block 进行配置时>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
我已经添加了 gist到我正在使用的 gradle 构建文件。现在,如果我在子项目 build.gradle.kts
文件之一中指定 java block ,我就可以让它工作,但我希望该设置应用于所有子项目,而不仅仅是特定项目。
最佳答案
你可以直接使用
configure<JavaPluginExtension> { ... }
关于java - 使用 Kotlin DSL 配置 Java 规范时出现 Gradle 编译错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53578055/