Skip to content

Commit 83a00c9

Browse files
authored
Fix transitiveCoursierProjects cause OOM on large build (#4452)
Resolve #4451 It seems that `transitiveCoursierProjects` is populated with repetitive transitive modules, that's why it only causes problem for large build.
1 parent c05e81b commit 83a00c9

File tree

1 file changed

+4
-5
lines changed

1 file changed

+4
-5
lines changed

scalalib/src/mill/scalalib/JavaModule.scala

+4-5
Original file line numberDiff line numberDiff line change
@@ -638,11 +638,10 @@ trait JavaModule
638638
* Coursier project of this module and those of all its transitive module dependencies
639639
*/
640640
def transitiveCoursierProjects: Task[Seq[cs.Project]] = Task {
641-
Seq(coursierProject()) ++
642-
Task.traverse(compileModuleDepsChecked)(_.transitiveCoursierProjects)().flatten ++
643-
Task.traverse(moduleDepsChecked)(_.transitiveCoursierProjects)().flatten ++
644-
Task.traverse(runModuleDepsChecked)(_.transitiveCoursierProjects)().flatten ++
645-
Task.traverse(bomModuleDepsChecked)(_.transitiveCoursierProjects)().flatten
641+
(Seq(coursierProject()) ++
642+
Task.traverse(
643+
(compileModuleDepsChecked ++ moduleDepsChecked ++ runModuleDepsChecked ++ bomModuleDepsChecked).distinct
644+
)(_.transitiveCoursierProjects)().flatten).distinctBy(_.module)
646645
}
647646

648647
/**

0 commit comments

Comments
 (0)