Skip to content

Commit e9474b9

Browse files
author
Martin Ahrer
committed
Do not use afterEvaluate as this is not needed but causes side-effects with convention plugins.
1 parent 4728413 commit e9474b9

File tree

3 files changed

+17
-9
lines changed

3 files changed

+17
-9
lines changed

build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ plugins {
99
}
1010

1111
group = "org.springdoc"
12-
version = "1.6.0"
12+
version = "1.6.1-SNAPSHOT"
1313

1414
sonarqube {
1515
properties {
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
distributionBase=GRADLE_USER_HOME
22
distributionPath=wrapper/dists
3-
distributionUrl=https\://services.gradle.org/distributions/gradle-7.0-bin.zip
3+
distributionUrl=https\://services.gradle.org/distributions/gradle-7.6-bin.zip
44
zipStoreBase=GRADLE_USER_HOME
55
zipStorePath=wrapper/dists

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

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,12 @@ import com.github.psxpaul.task.JavaExecFork
44
import org.gradle.api.Plugin
55
import org.gradle.api.Project
66
import org.gradle.api.Task
7-
import org.gradle.api.logging.Logging
7+
import org.gradle.api.UnknownDomainObjectException
88
import org.gradle.api.tasks.TaskProvider
99
import org.gradle.internal.jvm.Jvm
1010
import org.springframework.boot.gradle.tasks.run.BootRun
1111

1212
open 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

Comments
 (0)