mirror of https://github.com/sbt/sbt.git
[BSP] Fix importing Optional project dependency
This commit is contained in:
parent
b27c7253b1
commit
f990bd2d8d
|
|
@ -13,7 +13,9 @@ import sbt.Keys._
|
||||||
|
|
||||||
private[sbt] object InternalDependencies {
|
private[sbt] object InternalDependencies {
|
||||||
def configurations: Def.Initialize[Seq[(ProjectRef, Set[String])]] = Def.setting {
|
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 ref = thisProjectRef.value
|
||||||
val projectDependencies = buildDependencies.value.classpath.get(ref).toSeq.flatten
|
val projectDependencies = buildDependencies.value.classpath.get(ref).toSeq.flatten
|
||||||
val applicableConfigs = allConfigs + "*"
|
val applicableConfigs = allConfigs + "*"
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,7 @@ lazy val runAndTest = project.in(file("run-and-test"))
|
||||||
Test / javaOptions := Vector("Xmx512M"),
|
Test / javaOptions := Vector("Xmx512M"),
|
||||||
Test / envVars := Map("KEY_TEST" -> "VALUE_TEST"),
|
Test / envVars := Map("KEY_TEST" -> "VALUE_TEST"),
|
||||||
)
|
)
|
||||||
.dependsOn(util)
|
.dependsOn(util % Optional)
|
||||||
|
|
||||||
lazy val reportError = project.in(file("report-error"))
|
lazy val reportError = project.in(file("report-error"))
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -43,8 +43,12 @@ object BuildServerTest extends AbstractServerTest {
|
||||||
test("workspace/buildTargets") { _ =>
|
test("workspace/buildTargets") { _ =>
|
||||||
sendRequest("workspace/buildTargets")
|
sendRequest("workspace/buildTargets")
|
||||||
val result = svr.waitFor[WorkspaceBuildTargetsResult](10.seconds)
|
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"))
|
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 =
|
val buildServerBuildTarget =
|
||||||
result.targets.find(_.displayName.contains("buildserver-build")).get
|
result.targets.find(_.displayName.contains("buildserver-build")).get
|
||||||
assert(buildServerBuildTarget.id.uri.toString.endsWith("#buildserver-build"))
|
assert(buildServerBuildTarget.id.uri.toString.endsWith("#buildserver-build"))
|
||||||
|
|
@ -233,14 +237,19 @@ object BuildServerTest extends AbstractServerTest {
|
||||||
}
|
}
|
||||||
|
|
||||||
test("buildTarget/scalacOptions, buildTarget/javacOptions") { _ =>
|
test("buildTarget/scalacOptions, buildTarget/javacOptions") { _ =>
|
||||||
val buildTarget = buildTargetUri("util", "Compile")
|
val buildTargets = Seq(
|
||||||
val badBuildTarget = buildTargetUri("badBuildTarget", "Compile")
|
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")()
|
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")()
|
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") { _ =>
|
test("buildTarget/cleanCache") { _ =>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue