mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-03-22 15:19:59 +07:00
[maven][IDEA-363195] resolve maven projects in specific embedder
(cherry picked from commit ed3b85ff56fa7d2513cd524be778fe10855cfedf) Reviewed-by: IJ-CR-149760 GitOrigin-RevId: 053cd10a33aaedc37545fd17183000e32c7a8f7e
This commit is contained in:
committed by
intellij-monorepo-bot
parent
7a2e87e8e7
commit
e48ed52bd5
@@ -83,7 +83,6 @@ class MavenProjectResolver(private val myProject: Project) {
|
||||
eventHandler: MavenEventHandler): MavenProjectResolutionResult {
|
||||
val updateSnapshots = MavenProjectsManager.getInstance(myProject).forceUpdateSnapshots || generalSettings.isAlwaysUpdateSnapshots
|
||||
val projectsWithUnresolvedPlugins = HashMap<String, Collection<MavenProject>>()
|
||||
val pomToDependencyHash = tree.projects.associate { it.file to if (incrementally) it.dependencyHash else null }
|
||||
val projectMultiMap = MavenUtil.groupByBasedir(mavenProjects, tree)
|
||||
for ((baseDir, mavenProjectsInBaseDir) in projectMultiMap.entrySet()) {
|
||||
val embedder = embeddersManager.getEmbedder(MavenEmbeddersManager.FOR_DEPENDENCIES_RESOLVE, baseDir)
|
||||
@@ -95,6 +94,7 @@ class MavenProjectResolver(private val myProject: Project) {
|
||||
mavenImporter.customizeUserProperties(myProject, mavenProject, userProperties)
|
||||
}
|
||||
}
|
||||
val pomToDependencyHash = mavenProjectsInBaseDir.associate { it.file to if (incrementally) it.dependencyHash else null }
|
||||
val projectsWithUnresolvedPluginsChunk = withContext(tracer.span("doResolve $baseDir")) {
|
||||
doResolve(
|
||||
pomToDependencyHash,
|
||||
@@ -133,7 +133,7 @@ class MavenProjectResolver(private val myProject: Project) {
|
||||
MavenUtil.restartConfigHighlighting(mavenProjects)
|
||||
|
||||
if (incrementally && updateSnapshots) {
|
||||
updateSnapshotsAfterIncrementalSync(tree, pomToDependencyHash, embeddersManager, progressReporter, eventHandler)
|
||||
updateSnapshotsAfterIncrementalSync(tree, tree.projects.associate {it.file to it.dependencyHash}, embeddersManager, progressReporter, eventHandler)
|
||||
}
|
||||
return MavenProjectResolutionResult(projectsWithUnresolvedPlugins)
|
||||
}
|
||||
|
||||
@@ -2633,4 +2633,59 @@ class DependenciesImportingTest : MavenMultiVersionImportingTestCase() {
|
||||
assertModuleLibDep("m1", "Maven: ATTACHED-JAR: test:m2:1", "jar://" + FileUtil.toSystemIndependentName(jarPath) + "!/")
|
||||
assertModuleLibDeps("m2")
|
||||
}
|
||||
|
||||
@Test
|
||||
fun testTwoLinkedProjectsFromDifferentBasedirsShouldBeResolvedInDifferentEmbedders() = runBlocking {
|
||||
assumeMaven3()
|
||||
val project1 = createModulePom("project1",
|
||||
"""
|
||||
<groupId>org.example</groupId>
|
||||
<artifactId>project1</artifactId>
|
||||
<version>1.0</version>
|
||||
|
||||
<properties>
|
||||
<maven.compiler.source>17</maven.compiler.source>
|
||||
<maven.compiler.target>17</maven.compiler.target>
|
||||
<pom.myversion>${'$'}{myversion}</pom.myversion>
|
||||
</properties>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>test</groupId>
|
||||
<artifactId>test</artifactId>
|
||||
<version>${'$'}{pom.myversion}</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
""")
|
||||
|
||||
createProjectSubFile("project1/.mvn/jvm.config", "-Dmyversion=1")
|
||||
|
||||
val project2 = createModulePom("project2",
|
||||
"""
|
||||
<groupId>org.example</groupId>
|
||||
<artifactId>project2</artifactId>
|
||||
<version>1.0</version>
|
||||
|
||||
<properties>
|
||||
<maven.compiler.source>17</maven.compiler.source>
|
||||
<maven.compiler.target>17</maven.compiler.target>
|
||||
<pom.myversion>${'$'}{myversion}</pom.myversion>
|
||||
</properties>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>test</groupId>
|
||||
<artifactId>test</artifactId>
|
||||
<version>${'$'}{pom.myversion}</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
""")
|
||||
|
||||
createProjectSubFile("project2/.mvn/jvm.config", "-Dmyversion=2")
|
||||
|
||||
importProjectsAsync(project1, project2)
|
||||
assertModules("project1", "project2")
|
||||
assertModuleLibDeps("project1", "Maven: test:test:1")
|
||||
assertModuleLibDeps("project2", "Maven: test:test:2")
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user