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 - } - tasks.withType(JavaCompile) { - options.encoding = "UTF-8" - options.compilerArgs.add("-parameters") +def toolchainVersion() { + if (project.hasProperty('testToolchain')) { + return project.property('testToolchain').toString().toInteger() } + 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')) {