|
1 | 1 | /* |
2 | | - * Copyright 2012-2020 the original author or authors. |
| 2 | + * Copyright 2012-2021 the original author or authors. |
3 | 3 | * |
4 | 4 | * Licensed under the Apache License, Version 2.0 (the "License"); |
5 | 5 | * you may not use this file except in compliance with the License. |
|
38 | 38 | import org.gradle.api.plugins.BasePlugin; |
39 | 39 | import org.gradle.api.plugins.JavaPlugin; |
40 | 40 | import org.gradle.api.plugins.JavaPluginConvention; |
| 41 | +import org.gradle.api.plugins.JavaPluginExtension; |
41 | 42 | import org.gradle.api.provider.Provider; |
42 | 43 | import org.gradle.api.tasks.SourceSet; |
43 | 44 | import org.gradle.api.tasks.TaskProvider; |
44 | 45 | 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; |
45 | 49 |
|
46 | 50 | import org.springframework.boot.gradle.tasks.bundling.BootBuildImage; |
47 | 51 | import org.springframework.boot.gradle.tasks.bundling.BootJar; |
@@ -152,9 +156,22 @@ private void configureBootRunTask(Project project) { |
152 | 156 | run.conventionMapping("main", |
153 | 157 | () -> resolveProvider.flatMap(ResolveMainClassName::readMainClassName).get()); |
154 | 158 | } |
| 159 | + configureToolchainConvention(project, run); |
155 | 160 | }); |
156 | 161 | } |
157 | 162 |
|
| 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 | + |
158 | 175 | private JavaPluginConvention javaPluginConvention(Project project) { |
159 | 176 | return project.getConvention().getPlugin(JavaPluginConvention.class); |
160 | 177 | } |
|
0 commit comments