Skip to content

Commit 8bd000f

Browse files
committed
Fix #1886 Sync error in ForgeGradle composite builds
Also remove duplicate tasks before executing them
1 parent f5ea374 commit 8bd000f

File tree

2 files changed

+6
-4
lines changed

2 files changed

+6
-4
lines changed

src/main/kotlin/platform/mcp/gradle/McpProjectResolverExtension.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ class McpProjectResolverExtension : AbstractProjectResolverExtension() {
5959

6060
val projectDirPath = Paths.get(projectDataNode.data.linkedExternalProjectPath)
6161
runGradleTask(project, projectDirPath) { settings ->
62-
settings.taskNames = allTaskNames
62+
settings.taskNames = allTaskNames.distinct()
6363
}
6464

6565
super.resolveFinished(projectDataNode)

src/main/kotlin/platform/mcp/gradle/datahandler/McpModelFG3Handler.kt

+5-3
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ import com.intellij.openapi.vfs.LocalFileSystem
3434
import org.gradle.tooling.model.idea.IdeaModule
3535
import org.jetbrains.plugins.gradle.model.data.GradleSourceSetData
3636
import org.jetbrains.plugins.gradle.service.project.ProjectResolverContext
37+
import org.jetbrains.plugins.gradle.util.gradleIdentityPath
3738

3839
object McpModelFG3Handler : McpModelDataHandler {
3940

@@ -68,9 +69,10 @@ object McpModelFG3Handler : McpModelDataHandler {
6869
forgeVersion,
6970
)
7071

71-
val gradleProjectPath = gradleModule.gradleProject.projectIdentifier.projectPath
72-
val suffix = if (gradleProjectPath.endsWith(':')) "" else ":"
73-
val taskName = gradleProjectPath + suffix + data.taskName
72+
// gradleIdentityPath makes it work with composite builds
73+
val identityPath = node.data.gradleIdentityPath
74+
// But ignore it if it is the root project, as taskName already starts with a colon
75+
val taskName = if (identityPath == ":") data.taskName else identityPath + ':' + data.taskName
7476

7577
val ats = data.accessTransformers
7678
if (ats != null && ats.isNotEmpty()) {

0 commit comments

Comments
 (0)