Skip to content

Commit 5ae9fbe

Browse files
committed
Merge branch '2.3.x' into 2.4.x
Closes gh-24738
2 parents 3c3aa9e + 7625a97 commit 5ae9fbe

File tree

1 file changed

+18
-1
lines changed
  • spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/main/java/org/springframework/boot/gradle/plugin

1 file changed

+18
-1
lines changed

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

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2012-2020 the original author or authors.
2+
* Copyright 2012-2021 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -38,10 +38,14 @@
3838
import org.gradle.api.plugins.BasePlugin;
3939
import org.gradle.api.plugins.JavaPlugin;
4040
import org.gradle.api.plugins.JavaPluginConvention;
41+
import org.gradle.api.plugins.JavaPluginExtension;
4142
import org.gradle.api.provider.Provider;
4243
import org.gradle.api.tasks.SourceSet;
4344
import org.gradle.api.tasks.TaskProvider;
4445
import org.gradle.api.tasks.compile.JavaCompile;
46+
import org.gradle.jvm.toolchain.JavaToolchainService;
47+
import org.gradle.jvm.toolchain.JavaToolchainSpec;
48+
import org.gradle.util.GradleVersion;
4549

4650
import org.springframework.boot.gradle.tasks.bundling.BootBuildImage;
4751
import org.springframework.boot.gradle.tasks.bundling.BootJar;
@@ -152,9 +156,22 @@ private void configureBootRunTask(Project project) {
152156
run.conventionMapping("main",
153157
() -> resolveProvider.flatMap(ResolveMainClassName::readMainClassName).get());
154158
}
159+
configureToolchainConvention(project, run);
155160
});
156161
}
157162

163+
private void configureToolchainConvention(Project project, BootRun run) {
164+
if (isGradle67OrLater()) {
165+
JavaToolchainSpec toolchain = project.getExtensions().getByType(JavaPluginExtension.class).getToolchain();
166+
JavaToolchainService toolchainService = project.getExtensions().getByType(JavaToolchainService.class);
167+
run.getJavaLauncher().convention(toolchainService.launcherFor(toolchain));
168+
}
169+
}
170+
171+
private boolean isGradle67OrLater() {
172+
return GradleVersion.current().getBaseVersion().compareTo(GradleVersion.version("6.7")) >= 0;
173+
}
174+
158175
private JavaPluginConvention javaPluginConvention(Project project) {
159176
return project.getConvention().getPlugin(JavaPluginConvention.class);
160177
}

0 commit comments

Comments
 (0)