Skip to content

Commit 82a0664

Browse files
committed
Use the bootRun javaLauncher in fork task
Verified in a new Spring initializer project (plus springdoc and plugin) for both Java and Kotlin. For Java, choose Java 24 as toolchain version in build.gradle but configure Gradle JVM to Java 23 or earlier. For Kotlin, use Java 21 as bytecode version, but for illustrative purposes, downgrade Gradle JVM to Java 19 for example. LinkageError, java.lang.UnsupportedClassVersionError occurs in forkedSpringBootRun task in both cases (but with different encountered versus supported class file versions)
1 parent 0b20fe3 commit 82a0664

File tree

1 file changed

+7
-0
lines changed

1 file changed

+7
-0
lines changed

src/main/kotlin/org/springdoc/openapi/gradle/plugin/OpenApiGradlePlugin.kt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,10 @@ import org.gradle.api.Plugin
55
import org.gradle.api.Project
66
import org.gradle.api.Task
77
import org.gradle.api.UnknownDomainObjectException
8+
import org.gradle.api.plugins.JavaPluginExtension
89
import org.gradle.api.tasks.TaskProvider
910
import org.gradle.internal.jvm.Jvm
11+
import org.gradle.jvm.toolchain.JavaToolchainService
1012
import org.springframework.boot.gradle.tasks.run.BootRun
1113

1214
open class OpenApiGradlePlugin : Plugin<Project> {
@@ -110,6 +112,11 @@ open class OpenApiGradlePlugin : Plugin<Project> {
110112
?: bootRun.jvmArgs
111113
environment = customBootRun.environment.orNull?.takeIf { it.isNotEmpty() }
112114
?: bootRun.environment
115+
116+
// Respect javaLauncher configured for bootRun, so Gradle JVM version
117+
// (which may differ) is not used.
118+
javaLauncher.set(bootRun.javaLauncher)
119+
113120
if (Jvm.current().toString().startsWith("1.8")) {
114121
killDescendants = false
115122
}

0 commit comments

Comments
 (0)