diff --git a/plugins/gradle/src/org/jetbrains/plugins/gradle/service/project/CommonGradleProjectResolverExtension.java b/plugins/gradle/src/org/jetbrains/plugins/gradle/service/project/CommonGradleProjectResolverExtension.java index cb5b55b48175..88922230398a 100644 --- a/plugins/gradle/src/org/jetbrains/plugins/gradle/service/project/CommonGradleProjectResolverExtension.java +++ b/plugins/gradle/src/org/jetbrains/plugins/gradle/service/project/CommonGradleProjectResolverExtension.java @@ -698,7 +698,7 @@ public class CommonGradleProjectResolverExtension extends AbstractProjectResolve String rootProjectPath = ideProject.getData().getLinkedExternalProjectPath(); try { - File rootDir = resolverCtx.getModels().getMainBuild().getBuildIdentifier().getRootDir(); + File rootDir = gradleModule.getGradleProject().getProjectIdentifier().getBuildIdentifier().getRootDir(); rootProjectPath = ExternalSystemApiUtil.toCanonicalPath(rootDir.getCanonicalPath()); } catch (IOException e) { diff --git a/plugins/gradle/testSources/org/jetbrains/plugins/gradle/importing/GradleCompositeImportingTest.java b/plugins/gradle/testSources/org/jetbrains/plugins/gradle/importing/GradleCompositeImportingTest.java index 1d034c36e3f0..8e429cdf7556 100644 --- a/plugins/gradle/testSources/org/jetbrains/plugins/gradle/importing/GradleCompositeImportingTest.java +++ b/plugins/gradle/testSources/org/jetbrains/plugins/gradle/importing/GradleCompositeImportingTest.java @@ -16,10 +16,16 @@ package org.jetbrains.plugins.gradle.importing; import com.intellij.openapi.application.ApplicationManager; +import com.intellij.openapi.externalSystem.model.DataNode; +import com.intellij.openapi.externalSystem.model.ProjectKeys; +import com.intellij.openapi.externalSystem.model.task.TaskData; import com.intellij.openapi.externalSystem.service.project.IdeModifiableModelsProvider; import com.intellij.openapi.externalSystem.service.project.IdeModifiableModelsProviderImpl; +import com.intellij.openapi.externalSystem.util.ExternalSystemApiUtil; import com.intellij.openapi.module.StdModuleTypes; +import com.intellij.openapi.util.io.FileUtil; import org.jetbrains.plugins.gradle.tooling.annotation.TargetVersions; +import org.jetbrains.plugins.gradle.util.GradleUtil; import org.junit.Test; import static com.intellij.openapi.roots.DependencyScope.COMPILE; @@ -81,6 +87,10 @@ public class GradleCompositeImportingTest extends GradleImportingTestCase { assertModuleModuleDepScope("my-app.main", "my-utils.number-utils.main", COMPILE); assertModuleModuleDepScope("my-app.main", "my-utils.string-utils.main", COMPILE); assertModuleLibDepScope("my-app.main", "Gradle: org.apache.commons:commons-lang3:3.4", COMPILE); + + assertTasksProjectPath("adhoc", getProjectPath()); + assertTasksProjectPath("my-app", path("../my-app")); + assertTasksProjectPath("my-utils", path("../my-utils")); } @Test @@ -107,6 +117,9 @@ public class GradleCompositeImportingTest extends GradleImportingTestCase { "lib.runtime.runtime-mod", "lib.runtime.runtime-mod.main", "lib.runtime.runtime-mod.test"); assertModuleModuleDepScope("app.main", "lib.runtime.runtime-mod.main", COMPILE); + + assertTasksProjectPath("app", getProjectPath()); + assertTasksProjectPath("lib", path("lib")); } @@ -598,4 +611,15 @@ public class GradleCompositeImportingTest extends GradleImportingTestCase { assertModuleModuleDepScope("pA.pA-2.main", "pC.main", COMPILE); } + + private void assertTasksProjectPath(String moduleName, String expectedTaskProjectPath) { + for (DataNode node : ExternalSystemApiUtil + .findAll(GradleUtil.findGradleModuleData(getModule(moduleName)), ProjectKeys.TASK)) { + TaskData taskData = node.getData(); + String actual = taskData.getLinkedExternalProjectPath(); + if (expectedTaskProjectPath != null) expectedTaskProjectPath = FileUtil.toCanonicalPath(expectedTaskProjectPath); + if (actual != null) actual = FileUtil.toCanonicalPath(actual); + assertEquals(expectedTaskProjectPath, actual); + } + } }