@@ -4,13 +4,12 @@ import com.github.psxpaul.task.JavaExecFork
44import org.gradle.api.Plugin
55import org.gradle.api.Project
66import org.gradle.api.Task
7- import org.gradle.api.logging.Logging
7+ import org.gradle.api.UnknownDomainObjectException
88import org.gradle.api.tasks.TaskProvider
99import org.gradle.internal.jvm.Jvm
1010import org.springframework.boot.gradle.tasks.run.BootRun
1111
1212open class OpenApiGradlePlugin : Plugin <Project > {
13- private val logger = Logging .getLogger(OpenApiGradlePlugin ::class .java)
1413
1514 override fun apply (project : Project ) {
1615 with (project) {
@@ -20,7 +19,7 @@ open class OpenApiGradlePlugin : Plugin<Project> {
2019
2120 extensions.create(EXTENSION_NAME , OpenApiExtension ::class .java, this )
2221
23- afterEvaluate { generate(this ) }
22+ generate(this )
2423 }
2524 }
2625
@@ -30,14 +29,22 @@ open class OpenApiGradlePlugin : Plugin<Project> {
3029 // The task, used to run the Spring Boot application (`bootRun`)
3130 val bootRunTask = tasks.named(SPRING_BOOT_RUN_TASK_NAME )
3231 // The task, used to resolve the application's main class (`bootRunMainClassName`)
33- val bootRunMainClassNameTask = tasks.find { it.name == SPRING_BOOT_RUN_MAIN_CLASS_NAME_TASK_NAME }
34- ? : tasks.named(SPRING_BOOT_3_RUN_MAIN_CLASS_NAME_TASK_NAME )
32+ val bootRunMainClassNameTask =
33+ try {
34+ val task= tasks.named(SPRING_BOOT_RUN_MAIN_CLASS_NAME_TASK_NAME )
35+ logger.debug(" Detected Spring Boot task {}" , SPRING_BOOT_RUN_MAIN_CLASS_NAME_TASK_NAME )
36+ task
37+ } catch (e: UnknownDomainObjectException ) {
38+ val task= tasks.named(SPRING_BOOT_3_RUN_MAIN_CLASS_NAME_TASK_NAME )
39+ logger.debug(" Detected Spring Boot task {}" , SPRING_BOOT_3_RUN_MAIN_CLASS_NAME_TASK_NAME )
40+ task
41+ }
3542
3643 val extension = extensions.findByName(EXTENSION_NAME ) as OpenApiExtension
3744 val customBootRun = extension.customBootRun
3845 // Create a forked version spring boot run task
3946 val forkedSpringBoot = tasks.register(FORKED_SPRING_BOOT_RUN_TASK_NAME , JavaExecFork ::class .java) { fork ->
40- fork.dependsOn(bootRunMainClassNameTask)
47+ fork.dependsOn(tasks.named( bootRunMainClassNameTask.name) )
4148 fork.onlyIf { needToFork(bootRunTask, customBootRun, fork) }
4249 }
4350
@@ -54,8 +61,9 @@ open class OpenApiGradlePlugin : Plugin<Project> {
5461 val tasksNames = tasks.names
5562 val boot2TaskName = " bootRunMainClassName"
5663 val boot3TaskName = " resolveMainClassName"
57- if (! tasksNames.contains(boot2TaskName) && tasksNames.contains(boot3TaskName))
64+ if (! tasksNames.contains(boot2TaskName) && tasksNames.contains(boot3TaskName)) {
5865 tasks.register(boot2TaskName) { it.dependsOn(tasks.named(boot3TaskName)) }
66+ }
5967 }
6068
6169 private fun needToFork (
0 commit comments