您可以在支持 Gradle 的 IDE 中打开此示例。

此示例展示了如何在 Gradle 中为 JVM 项目配置工具链。您的项目通常以特定的 Java 版本为目标。使用工具链,可以非常简单地设置所需的 Java 版本,而 Gradle 会相应地处理任务(例如编译和测试)的设置。

具体来说,我们在 buildSrc 中添加一个约定插件,以在多个子项目之间共享设置

buildSrc/src/main/kotlin/myproject.java-conventions.gradle.kts
java {
    toolchain {
        languageVersion = JavaLanguageVersion.of(11)
    }
}
buildSrc/src/main/groovy/myproject.java-conventions.gradle
java {
    toolchain {
        languageVersion = JavaLanguageVersion.of(11)
    }
}

虽然大多数模块使用默认设置即可,但 list 子项目覆盖了默认设置,因为它有更具体的要求。

list/build.gradle.kts
tasks.withType<JavaCompile>().configureEach {
    javaCompiler = javaToolchains.compilerFor {
        languageVersion = JavaLanguageVersion.of(8)
    }
}

tasks.register<Test>("testsOn17") {
    javaLauncher = javaToolchains.launcherFor {
        languageVersion = JavaLanguageVersion.of(17)
    }
}
list/build.gradle
tasks.withType(JavaCompile).configureEach {
    javaCompiler = javaToolchains.compilerFor {
        languageVersion = JavaLanguageVersion.of(8)
    }
}

tasks.register('testsOn17', Test) {
    javaLauncher = javaToolchains.launcherFor {
        languageVersion = JavaLanguageVersion.of(17)
    }
}
$ ./gradlew check

BUILD SUCCESSFUL
9 actionable tasks: 9 executed

有关更多信息,请参阅 工具链章节