diff --git a/main/src/main/scala/sbt/internal/InternalDependencies.scala b/main/src/main/scala/sbt/internal/InternalDependencies.scala index 4c866b17b..6a1bf74d6 100644 --- a/main/src/main/scala/sbt/internal/InternalDependencies.scala +++ b/main/src/main/scala/sbt/internal/InternalDependencies.scala @@ -13,7 +13,9 @@ import sbt.Keys._ private[sbt] object InternalDependencies { def configurations: Def.Initialize[Seq[(ProjectRef, Set[String])]] = Def.setting { - val allConfigs = Classpaths.allConfigs(configuration.value).map(_.name).toSet + val configMap = internalConfigurationMap.value + val config = configMap(configuration.value) + val allConfigs = Classpaths.allConfigs(config).map(_.name).toSet val ref = thisProjectRef.value val projectDependencies = buildDependencies.value.classpath.get(ref).toSeq.flatten val applicableConfigs = allConfigs + "*" diff --git a/server-test/src/server-test/buildserver/build.sbt b/server-test/src/server-test/buildserver/build.sbt index fffa813ff..1d31a2e61 100644 --- a/server-test/src/server-test/buildserver/build.sbt +++ b/server-test/src/server-test/buildserver/build.sbt @@ -12,7 +12,7 @@ lazy val runAndTest = project.in(file("run-and-test")) Test / javaOptions := Vector("Xmx512M"), Test / envVars := Map("KEY_TEST" -> "VALUE_TEST"), ) - .dependsOn(util) + .dependsOn(util % Optional) lazy val reportError = project.in(file("report-error")) diff --git a/server-test/src/test/scala/testpkg/BuildServerTest.scala b/server-test/src/test/scala/testpkg/BuildServerTest.scala index 0e79673b7..fff085a94 100644 --- a/server-test/src/test/scala/testpkg/BuildServerTest.scala +++ b/server-test/src/test/scala/testpkg/BuildServerTest.scala @@ -43,8 +43,12 @@ object BuildServerTest extends AbstractServerTest { test("workspace/buildTargets") { _ => sendRequest("workspace/buildTargets") val result = svr.waitFor[WorkspaceBuildTargetsResult](10.seconds) - val utilTarget = result.targets.find(_.displayName.contains("util")).get + val utilTargetIdentifier = BuildTargetIdentifier(buildTargetUri("util", "Compile")) + val utilTarget = result.targets.find(_.id == utilTargetIdentifier).get assert(utilTarget.id.uri.toString.endsWith("#util/Compile")) + val runAndTestTarget = result.targets.find(_.displayName.contains("runAndTest")).get + // runAndTest should declare the dependency to util even if optional + assert(runAndTestTarget.dependencies.contains(utilTargetIdentifier)) val buildServerBuildTarget = result.targets.find(_.displayName.contains("buildserver-build")).get assert(buildServerBuildTarget.id.uri.toString.endsWith("#buildserver-build")) @@ -233,14 +237,19 @@ object BuildServerTest extends AbstractServerTest { } test("buildTarget/scalacOptions, buildTarget/javacOptions") { _ => - val buildTarget = buildTargetUri("util", "Compile") - val badBuildTarget = buildTargetUri("badBuildTarget", "Compile") + val buildTargets = Seq( + buildTargetUri("util", "Compile"), + buildTargetUri("badBuildTarget", "Compile"), + ) - val id1 = scalacOptions(Seq(buildTarget, badBuildTarget)) + val id1 = scalacOptions(buildTargets) assertMessage(s""""id":"$id1"""", "scala-library-2.13.11.jar")() - val id2 = javacOptions(Seq(buildTarget, badBuildTarget)) + val id2 = javacOptions(buildTargets) assertMessage(s""""id":"$id2"""", "scala-library-2.13.11.jar")() + + val id3 = scalacOptions(Seq(buildTargetUri("runAndTest", "Compile"))) + assertMessage(s""""id":"$id3"""", "util/target/scala-2.13/classes")() } test("buildTarget/cleanCache") { _ =>