From 54c27d575b817a8350dad9d838ee027f95619c38 Mon Sep 17 00:00:00 2001 From: Adrien Piquerez Date: Tue, 23 Mar 2021 15:58:23 +0100 Subject: [PATCH] Fix internal dependency configurations --- .../scala/sbt/internal/InternalDependencies.scala | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/main/src/main/scala/sbt/internal/InternalDependencies.scala b/main/src/main/scala/sbt/internal/InternalDependencies.scala index 9dc447831..6808f5e6a 100644 --- a/main/src/main/scala/sbt/internal/InternalDependencies.scala +++ b/main/src/main/scala/sbt/internal/InternalDependencies.scala @@ -14,19 +14,21 @@ private[sbt] object InternalDependencies { def configurations: Def.Initialize[Seq[(ProjectRef, Set[String])]] = Def.setting { val allConfigs = Classpaths.allConfigs(configuration.value).map(_.name).toSet val ref = thisProjectRef.value + val projectDependencies = buildDependencies.value.classpath.get(ref).toSeq.flatten val applicableConfigs = allConfigs + "*" - ((ref -> allConfigs) +: buildDependencies.value.classpath - .get(ref) - .toSeq - .flatMap(_.flatMap { + ((ref -> allConfigs) +: + projectDependencies.flatMap { case ResolvedClasspathDependency(p, rawConfigs) => val configs = rawConfigs.getOrElse("*->compile").split(";").flatMap { config => config.split("->") match { case Array(n, c) if applicableConfigs.contains(n) => Some(c) - case _ => None + case Array(n) if applicableConfigs.contains(n) => + // "test" is equivalent to "compile->test" + Some("compile") + case _ => None } } if (configs.isEmpty) None else Some(p -> configs.toSet) - })).distinct + }).distinct } }