Skip to content

Commit 386d678

Browse files
committed
Use Gradle's CreateStartScripts task with 6.4 and later
Fixes gh-20759
1 parent addaf5f commit 386d678

File tree

3 files changed

+14
-4
lines changed

3 files changed

+14
-4
lines changed

spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/main/java/org/springframework/boot/gradle/plugin/ApplicationPluginAction.java

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,8 @@
3636
import org.gradle.api.provider.Property;
3737
import org.gradle.api.provider.Provider;
3838
import org.gradle.jvm.application.scripts.TemplateBasedScriptGenerator;
39+
import org.gradle.jvm.application.tasks.CreateStartScripts;
40+
import org.gradle.util.GradleVersion;
3941

4042
import org.springframework.boot.gradle.tasks.application.CreateBootStartScripts;
4143

@@ -53,8 +55,8 @@ public void execute(Project project) {
5355
DistributionContainer distributions = project.getExtensions().getByType(DistributionContainer.class);
5456
Distribution distribution = distributions.create("boot");
5557
configureBaseNameConvention(project, applicationConvention, distribution);
56-
CreateBootStartScripts bootStartScripts = project.getTasks().create("bootStartScripts",
57-
CreateBootStartScripts.class);
58+
CreateStartScripts bootStartScripts = project.getTasks().create("bootStartScripts",
59+
determineCreateStartScriptsClass());
5860
bootStartScripts
5961
.setDescription("Generates OS-specific start scripts to run the project as a Spring Boot application.");
6062
((TemplateBasedScriptGenerator) bootStartScripts.getUnixStartScriptGenerator())
@@ -79,6 +81,14 @@ public void execute(Project project) {
7981
distribution.getContents().with(binCopySpec);
8082
}
8183

84+
private Class<? extends CreateStartScripts> determineCreateStartScriptsClass() {
85+
return isGradle64OrLater() ? CreateStartScripts.class : CreateBootStartScripts.class;
86+
}
87+
88+
private boolean isGradle64OrLater() {
89+
return GradleVersion.current().getBaseVersion().compareTo(GradleVersion.version("6.4")) >= 0;
90+
}
91+
8292
@SuppressWarnings("unchecked")
8393
private void configureBaseNameConvention(Project project, ApplicationPluginConvention applicationConvention,
8494
Distribution distribution) {

spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/java/org/springframework/boot/gradle/junit/GradleCompatibilityExtension.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@
3939
public final class GradleCompatibilityExtension implements TestTemplateInvocationContextProvider {
4040

4141
private static final List<String> GRADLE_VERSIONS = Arrays.asList("default", "5.0", "5.1.1", "5.2.1", "5.3.1",
42-
"5.4.1", "5.5.1", "5.6.4", "6.0.1", "6.1.1", "6.2.2", "6.3");
42+
"5.4.1", "5.5.1", "5.6.4", "6.0.1", "6.1.1", "6.2.2", "6.3", "6.4");
4343

4444
@Override
4545
public Stream<TestTemplateInvocationContext> provideTestTemplateInvocationContexts(ExtensionContext context) {

spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/resources/org/springframework/boot/gradle/plugin/ApplicationPluginActionIntegrationTests.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ task('javaCompileEncoding') {
3131

3232
task('startScriptsDefaultJvmOpts') {
3333
doFirst {
34-
tasks.withType(org.springframework.boot.gradle.tasks.application.CreateBootStartScripts) {
34+
tasks.getByName("bootStartScripts") {
3535
println "$name defaultJvmOpts = $defaultJvmOpts"
3636
}
3737
}

0 commit comments

Comments
 (0)