Skip to content

Commit e579c9c

Browse files
committed
Use project isolation specific beforeProject for gradle >= 8.8
1 parent e9707cb commit e579c9c

File tree

2 files changed

+23
-3
lines changed

2 files changed

+23
-3
lines changed

src/main/kotlin/io/github/sgtsilvio/gradle/structure/StructurePlugin.kt

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import org.gradle.StartParameter
44
import org.gradle.api.Plugin
55
import org.gradle.api.initialization.Settings
66
import org.gradle.kotlin.dsl.create
7+
import org.gradle.util.GradleVersion
78
import java.io.File
89

910
/**
@@ -18,9 +19,10 @@ class StructurePlugin : Plugin<Settings> {
1819
settings.gradle.settingsEvaluated {
1920
val projectPathMapping = ProjectPathMapping(rootProjectDefinition)
2021
updateTaskPaths(startParameter, projectPathMapping, rootDir)
21-
gradle.beforeProject {
22-
// gradle.lifecycle.beforeProject {
23-
extensions.create(EXTENSION_NAME, StructureProjectExtension::class, projectPathMapping)
22+
if (GradleVersion.current() >= GradleVersion.version("8.8")) {
23+
gradle.lifecycle.beforeProject(StructureProjectIsolatedAction(projectPathMapping))
24+
} else {
25+
gradle.beforeProject(StructureProjectAction(projectPathMapping))
2426
}
2527
}
2628
}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package io.github.sgtsilvio.gradle.structure
2+
3+
import org.gradle.api.Action
4+
import org.gradle.api.IsolatedAction
5+
import org.gradle.api.Project
6+
import org.gradle.kotlin.dsl.create
7+
8+
open class StructureProjectAction internal constructor(
9+
private val projectPathMapping: ProjectPathMapping,
10+
) : Action<Project> {
11+
override fun execute(project: Project) {
12+
project.extensions.create(EXTENSION_NAME, StructureProjectExtension::class, projectPathMapping)
13+
}
14+
}
15+
16+
class StructureProjectIsolatedAction internal constructor(
17+
projectPathMapping: ProjectPathMapping,
18+
) : StructureProjectAction(projectPathMapping), IsolatedAction<Project>

0 commit comments

Comments
 (0)