Fix #8405: updateSbtClassifiers includes plugins in dependencies list

Preserve original direct dependencies (plugins) and merge with transitive dependencies
Original dependencies may include plugins that are NOT transitive dependencies of sbt
This commit is contained in:
Anatolii Kmetiuk 2025-12-10 14:50:00 +09:00
parent 69f8ad63d3
commit 0acb12a978
1 changed files with 5 additions and 1 deletions

View File

@ -203,8 +203,12 @@ private[sbt] object LibraryManagement {
case Left(w) =>
throw w.resolveException
}
val key = (m: ModuleID) => (m.organization, m.name, m.revision)
val originalKeys = dependencies.map(key).toSet
val transitiveOnly = report.allModules.filterNot(m => originalKeys contains key(m))
val mergedDependencies = dependencies ++ transitiveOnly
val newConfig = config
.withModule(module.withDependencies(report.allModules))
.withModule(module.withDependencies(mergedDependencies))
lm.updateClassifiers(newConfig, uwconfig, Vector(), log)
}