From c4750fd0ff971d09a6c2ce79aad401f0985b5f4e Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Mon, 12 Apr 2021 15:14:55 +0100 Subject: [PATCH] Support Gradle 7 and raise minimum supported version to 6.8 Closes gh-26026 --- .../src/docs/asciidoc/build-tool-plugins.adoc | 2 +- .../spring-boot-docs/src/docs/asciidoc/getting-started.adoc | 4 ++-- .../spring-boot-gradle-plugin/src/docs/asciidoc/index.adoc | 3 +-- .../src/docs/asciidoc/managing-dependencies.adoc | 2 +- .../boot/gradle/plugin/SpringBootPlugin.java | 6 +++--- .../boot/gradle/junit/GradleCompatibilityExtension.java | 4 ++-- .../gradle/plugin/SpringBootPluginIntegrationTests.java | 6 +++--- 7 files changed, 13 insertions(+), 14 deletions(-) diff --git a/spring-boot-project/spring-boot-docs/src/docs/asciidoc/build-tool-plugins.adoc b/spring-boot-project/spring-boot-docs/src/docs/asciidoc/build-tool-plugins.adoc index e74180aa149..6486a32bdaf 100644 --- a/spring-boot-project/spring-boot-docs/src/docs/asciidoc/build-tool-plugins.adoc +++ b/spring-boot-project/spring-boot-docs/src/docs/asciidoc/build-tool-plugins.adoc @@ -23,7 +23,7 @@ Please refer to the plugin's documentation to learn more: [[build-tool-plugins-gradle-plugin]] == Spring Boot Gradle Plugin The Spring Boot Gradle Plugin provides Spring Boot support in Gradle, letting you package executable jar or war archives, run Spring Boot applications, and use the dependency management provided by `spring-boot-dependencies`. -It requires Gradle 6 (6.3 or later). +It requires Gradle 6.8 or 7.x. Please refer to the plugin's documentation to learn more: * Reference ({spring-boot-gradle-plugin-docs}[HTML] and {spring-boot-gradle-plugin-pdfdocs}[PDF]) diff --git a/spring-boot-project/spring-boot-docs/src/docs/asciidoc/getting-started.adoc b/spring-boot-project/spring-boot-docs/src/docs/asciidoc/getting-started.adoc index 946d55c0ab5..7d139dad61b 100644 --- a/spring-boot-project/spring-boot-docs/src/docs/asciidoc/getting-started.adoc +++ b/spring-boot-project/spring-boot-docs/src/docs/asciidoc/getting-started.adoc @@ -41,7 +41,7 @@ Explicit build support is provided for the following build tools: | 3.3+ | Gradle -| 6 (6.3 or later) +| 6.8.x and 7.x |=== @@ -117,7 +117,7 @@ More details on getting started with Spring Boot and Maven can be found in the { [[getting-started-gradle-installation]] ==== Gradle Installation -Spring Boot is compatible with Gradle 6 (6.3 or later). +Spring Boot is compatible with Gradle 6.8 and 7.x. If you do not already have Gradle installed, you can follow the instructions at https://gradle.org. Spring Boot dependencies can be declared by using the `org.springframework.boot` `group`. diff --git a/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/docs/asciidoc/index.adoc b/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/docs/asciidoc/index.adoc index a9630836f27..b235f0d29b6 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/docs/asciidoc/index.adoc +++ b/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/docs/asciidoc/index.adoc @@ -42,8 +42,7 @@ Andy Wilkinson, Scott Frederick == Introduction The Spring Boot Gradle Plugin provides Spring Boot support in https://gradle.org[Gradle]. It allows you to package executable jar or war archives, run Spring Boot applications, and use the dependency management provided by `spring-boot-dependencies`. -Spring Boot's Gradle plugin requires Gradle 6 (6.3 or later). -Gradle's {gradle-userguide}/configuration_cache.html[configuration cache] is supported when using Gradle 6.7 or later. +Spring Boot's Gradle plugin requires Gradle 6.8 or 7.x and can be used with Gradle's {gradle-userguide}/configuration_cache.html[configuration cache]. In addition to this user guide, {api-documentation}[API documentation] is also available. diff --git a/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/docs/asciidoc/managing-dependencies.adoc b/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/docs/asciidoc/managing-dependencies.adoc index bf8c96002c7..23213ca4014 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/docs/asciidoc/managing-dependencies.adoc +++ b/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/docs/asciidoc/managing-dependencies.adoc @@ -1,6 +1,6 @@ [[managing-dependencies]] == Managing Dependencies -To manage dependencies in your Spring Boot application, you can either apply the {dependency-management-plugin}[`io.spring.dependency-management`] plugin or, if you are using Gradle 6 or later, use Gradle's native bom support. +To manage dependencies in your Spring Boot application, you can either apply the {dependency-management-plugin}[`io.spring.dependency-management`] plugin or use Gradle's native bom support. The primary benefit of the former is that it offers property-based customization of managed versions, while using the latter will likely result in faster builds. diff --git a/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/main/java/org/springframework/boot/gradle/plugin/SpringBootPlugin.java b/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/main/java/org/springframework/boot/gradle/plugin/SpringBootPlugin.java index 9f6d6e3d94b..b7acfac1098 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/main/java/org/springframework/boot/gradle/plugin/SpringBootPlugin.java +++ b/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/main/java/org/springframework/boot/gradle/plugin/SpringBootPlugin.java @@ -95,9 +95,9 @@ public class SpringBootPlugin implements Plugin { private void verifyGradleVersion() { GradleVersion currentVersion = GradleVersion.current(); - if (currentVersion.compareTo(GradleVersion.version("6.3")) < 0) { - throw new GradleException("Spring Boot plugin requires Gradle 6 (6.3 or later). " - + "The current version is " + currentVersion); + if (currentVersion.compareTo(GradleVersion.version("6.8")) < 0) { + throw new GradleException( + "Spring Boot plugin requires Gradle 6.8.x or 7.x. " + "The current version is " + currentVersion); } } diff --git a/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/java/org/springframework/boot/gradle/junit/GradleCompatibilityExtension.java b/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/java/org/springframework/boot/gradle/junit/GradleCompatibilityExtension.java index 86cf24553b1..5a904634362 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/java/org/springframework/boot/gradle/junit/GradleCompatibilityExtension.java +++ b/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/java/org/springframework/boot/gradle/junit/GradleCompatibilityExtension.java @@ -51,7 +51,7 @@ final class GradleCompatibilityExtension implements TestTemplateInvocationContex GRADLE_VERSIONS = Arrays.asList("7.0"); } else { - GRADLE_VERSIONS = Arrays.asList("6.3", "6.4.1", "6.5.1", "6.6.1", "6.7.1", "current", "7.0"); + GRADLE_VERSIONS = Arrays.asList("current", "7.0"); } } @@ -74,7 +74,7 @@ final class GradleCompatibilityExtension implements TestTemplateInvocationContex List invocationContexts = new ArrayList<>(); invocationContexts.add(new GradleVersionTestTemplateInvocationContext(version, false)); boolean configurationCache = gradleCompatibility.configurationCache(); - if (configurationCache && GradleVersion.version(version).compareTo(GradleVersion.version("6.7")) >= 0) { + if (configurationCache) { invocationContexts.add(new GradleVersionTestTemplateInvocationContext(version, true)); } return invocationContexts.stream(); diff --git a/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/java/org/springframework/boot/gradle/plugin/SpringBootPluginIntegrationTests.java b/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/java/org/springframework/boot/gradle/plugin/SpringBootPluginIntegrationTests.java index e5287dba6b6..0921e2a08b8 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/java/org/springframework/boot/gradle/plugin/SpringBootPluginIntegrationTests.java +++ b/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/java/org/springframework/boot/gradle/plugin/SpringBootPluginIntegrationTests.java @@ -40,15 +40,15 @@ class SpringBootPluginIntegrationTests { @DisabledForJreRange(min = JRE.JAVA_14) @Test void failFastWithVersionOfGradle6LowerThanRequired() { - BuildResult result = this.gradleBuild.gradleVersion("6.2.2").buildAndFail(); + BuildResult result = this.gradleBuild.gradleVersion("6.7.1").buildAndFail(); assertThat(result.getOutput()) - .contains("Spring Boot plugin requires Gradle 6 (6.3 or later). The current version is Gradle 6.2.2"); + .contains("Spring Boot plugin requires Gradle 6.8.x or 7.x. The current version is Gradle 6.7.1"); } @DisabledForJreRange(min = JRE.JAVA_16) @Test void succeedWithVersionOfGradle6MatchingWithIsRequired() { - this.gradleBuild.gradleVersion("6.3").build(); + this.gradleBuild.gradleVersion("6.8").build(); } }