您可以在 IDE 中使用 IntelliJ 原生导入器Eclipse Buildship 打开此示例。

此示例展示了如何在 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)
    }
}

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

BUILD SUCCESSFUL
9 actionable tasks: 9 executed

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