[maven] IDEA-340501 sync Maven projects incrementally in MavenProjectAware

GitOrigin-RevId: 39bc350bfaaf5aaaa9a36bf50267b5ee8ca53802
This commit is contained in:
Dmitry Kichinsky
2024-02-12 23:06:36 +01:00
committed by intellij-monorepo-bot
parent c175bfdd8a
commit bf7fdbe6e6
2 changed files with 12 additions and 3 deletions

View File

@@ -42,7 +42,7 @@ class MavenProjectAware(
}
if (context.hasUndefinedModifications) {
manager.findAllAvailablePomFilesIfNotMavenized()
val spec = MavenSyncSpec.full("MavenProjectAware.reloadProject, undefined modifications", context.isExplicitReload)
val spec = MavenSyncSpec.incremental("MavenProjectAware.reloadProject, undefined modifications", context.isExplicitReload)
manager.scheduleUpdateAllMavenProjects(spec)
}
else {
@@ -61,11 +61,10 @@ class MavenProjectAware(
val deleted = settingsFilesContext.deleted
if (updated.size == filesToUpdate.size && deleted.size == filesToDelete.size) {
val spec = MavenSyncSpec.full("MavenProjectAware.reloadProject, sync selected", context.isExplicitReload)
val spec = MavenSyncSpec.incremental("MavenProjectAware.reloadProject, sync selected", context.isExplicitReload)
manager.scheduleUpdateMavenProjects(spec, filesToUpdate, filesToDelete)
}
else {
// IDEA-276087 if changed not project files(.mvn) then run full import
manager.findAllAvailablePomFilesIfNotMavenized()
val spec = MavenSyncSpec.incremental("MavenProjectAware.reloadProject, sync all", context.isExplicitReload)
manager.scheduleUpdateAllMavenProjects(spec)

View File

@@ -447,6 +447,11 @@ class MavenProjectsManagerAutoImportTest : MavenMultiVersionImportingTestCase()
""".trimIndent())
scheduleProjectImportAndWaitAsync()
assertModuleModuleDeps("m1", "m2")
// relying on transitive dependencies is not a good practice
// transitive dependency updating is not fully supported by incremental sync
// run full sync to pick up transitive dependency
updateAllProjects()
assertModuleLibDeps("m1", "Maven: junit:junit:4.0")
}
@@ -535,6 +540,11 @@ class MavenProjectsManagerAutoImportTest : MavenMultiVersionImportingTestCase()
scheduleProjectImportAndWaitAsync()
assertModules("project", "m1")
assertModuleModuleDeps("m1")
// relying on transitive dependencies is not a good practice
// transitive dependency updating is not fully supported by incremental sync
// run full sync to pick up transitive dependency changes
updateAllProjects()
assertModuleLibDeps("m1", "Maven: test:m2:1")
}