From f3a012eaa2af11ec4f58b10e17e26d93fe650e0c Mon Sep 17 00:00:00 2001 From: Steve Riesenberg Date: Mon, 11 Sep 2023 10:43:29 -0500 Subject: [PATCH] Support toolchain switching and JDK 21 Issue gh-12790 Issue gh-13811 --- build.gradle | 35 ++++++++++++++++++++++++----------- 1 file changed, 24 insertions(+), 11 deletions(-) diff --git a/build.gradle b/build.gradle index 4e7acf9e10..d0b43286be 100644 --- a/build.gradle +++ b/build.gradle @@ -123,16 +123,35 @@ updateDependenciesSettings { } } -subprojects { - plugins.withType(JavaPlugin) { - project.sourceCompatibility=JavaVersion.VERSION_17 +def toolchainVersion() { + if (project.hasProperty('testToolchain')) { + return project.property('testToolchain').toString().toInteger() } - tasks.withType(JavaCompile) { + return 17 +} + +subprojects { + def toolchainVersion = toolchainVersion() + + tasks.withType(JavaCompile).configureEach { options.encoding = "UTF-8" options.compilerArgs.add("-parameters") + + java { + toolchain { + languageVersion = JavaLanguageVersion.of(toolchainVersion) + } + } } -} + tasks.withType(Test).configureEach { + java { + toolchain { + languageVersion = JavaLanguageVersion.of(toolchainVersion) + } + } + } +} allprojects { if (!['spring-security-bom', 'spring-security-docs'].contains(project.name)) { @@ -158,12 +177,6 @@ allprojects { } } } - - tasks.withType(JavaCompile).configureEach { - javaCompiler = javaToolchains.compilerFor { - languageVersion = JavaLanguageVersion.of(17) - } - } } if (hasProperty('buildScan')) {