diff --git a/buildSrc/src/main/java/org/springframework/boot/build/JavaConventions.java b/buildSrc/src/main/java/org/springframework/boot/build/JavaConventions.java
index c8059a208f9..fbf12d8e6dd 100644
--- a/buildSrc/src/main/java/org/springframework/boot/build/JavaConventions.java
+++ b/buildSrc/src/main/java/org/springframework/boot/build/JavaConventions.java
@@ -64,7 +64,6 @@ import org.springframework.boot.build.toolchain.ToolchainPlugin;
* plugin is applied:
*
*
- * - {@code sourceCompatibility} is set to {@code 1.8}
*
- {@link SpringJavaFormatPlugin Spring Java Format}, {@link CheckstylePlugin
* Checkstyle}, {@link TestFailuresPlugin Test Failures}, and {@link TestRetryPlugin Test
* Retry} plugins are applied
@@ -79,8 +78,12 @@ import org.springframework.boot.build.toolchain.ToolchainPlugin;
* {@link JavaPlugin} applied
*
- {@link JavaCompile}, {@link Javadoc}, and {@link FormatTask} tasks are configured
* to use UTF-8 encoding
- *
- {@link JavaCompile} tasks are configured to use {@code -parameters} and, when
- * compiling with Java 8, to:
+ *
- {@link JavaCompile} tasks are configured:
+ *
+ * - to use {@code -parameters}
+ *
- with source and target compatibility of 1.8
+ *
+ * - When building with Java 8, {@link JavaCompile} tasks are also configured to:
*
* - Treat warnings as errors
*
- Enable {@code unchecked}, {@code deprecation}, {@code rawtypes}, and {@code varags}
@@ -107,11 +110,12 @@ import org.springframework.boot.build.toolchain.ToolchainPlugin;
*/
class JavaConventions {
+ private static final String SOURCE_AND_TARGET_COMPATIBILITY = "1.8";
+
void apply(Project project) {
project.getPlugins().withType(JavaBasePlugin.class, (java) -> {
project.getPlugins().apply(TestFailuresPlugin.class);
configureSpringJavaFormat(project);
- project.setProperty("sourceCompatibility", "1.8");
configureJavaCompileConventions(project);
configureJavadocConventions(project);
configureTestConventions(project);
@@ -137,7 +141,7 @@ class JavaConventions {
jar.manifest((manifest) -> {
Map attributes = new TreeMap<>();
attributes.put("Automatic-Module-Name", project.getName().replace("-", "."));
- attributes.put("Build-Jdk-Spec", project.property("sourceCompatibility"));
+ attributes.put("Build-Jdk-Spec", SOURCE_AND_TARGET_COMPATIBILITY);
attributes.put("Built-By", "Spring");
attributes.put("Implementation-Title",
determineImplementationTitle(project, sourceJarTaskNames, javadocJarTaskNames, jar));
@@ -194,8 +198,8 @@ class JavaConventions {
private void configureJavaCompileConventions(Project project) {
project.getTasks().withType(JavaCompile.class, (compile) -> {
compile.getOptions().setEncoding("UTF-8");
- compile.setSourceCompatibility("1.8");
- compile.setTargetCompatibility("1.8");
+ compile.setSourceCompatibility(SOURCE_AND_TARGET_COMPATIBILITY);
+ compile.setTargetCompatibility(SOURCE_AND_TARGET_COMPATIBILITY);
List args = compile.getOptions().getCompilerArgs();
if (!args.contains("-parameters")) {
args.add("-parameters");