我想把我所有的子项目的Java版本设置为17。
下面是我的主要项目的gradle文件-
group = "org.example"
version = "1.0-SNAPSHOT"
subprojects {
apply(plugin = "java")
repositories {
mavenCentral()
mavenLocal()
}
configure<JavaCompile> {
targetCompatibility = JavaVersion.VERSION_17.toString()
sourceCompatibility = JavaVersion.VERSION_17.toString()
}
java {
toolchain {
languageVersion.set(JavaLanguageVersion.of(17))
}
}
}
字符串
当我运行gradle clean build
命令时,我得到以下错误-
% gradle clean build
配置项目:e:file:/Users/rnatarajan/Documents/Coding/others/org-example/build. gradle. kts:28:5:表达式“java”不能作为函数调用。未找到函数“invoke()”e:file:/Users/rnatarajan/Documents/Coding/others/org-example/build. gradle. kts:28:5:未解析的引用。由于接收器类型不匹配,以下候选项均不适用:public瓦尔PluginDependenciesSpec.java:PluginDependencySpec defined in org.gradle.Kotlin.dsl e:file:/Users/rnatarajan/Documents/Coding/others/org-example/build. gradle. kts:29:9:未解析参考:工具链e:文件:/Users/rnatarajan/Documents/Coding/others/org-example/build. gradle. kts:30:13:未解析参考:语言版本
FAILURE:生成失败,出现异常。
你知道如何修复这个错误吗?
1条答案
按热度按时间hgncfbus1#
不能对
subprojects { }
使用类型安全访问器。此外,您似乎正在根据您对configure<JavaCompile>
的使用将Groovy DSL转换为Kotlin。您需要的内容如下:字符串
请注意,targetCompatibility/sourceCompatibility默认为工具链的任何配置。由于您将它们配置为与工具链相同,因此我在上面省略了它。
但是,如果您确实需要配置所有
JavaCompile
任务,则:型