您可以在支援 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

如需更多資訊,請參閱工具鏈章節