diff --git a/main/src/main/scala/sbt/Defaults.scala b/main/src/main/scala/sbt/Defaults.scala
index e6fe3094a..1fa06a717 100755
--- a/main/src/main/scala/sbt/Defaults.scala
+++ b/main/src/main/scala/sbt/Defaults.scala
@@ -1227,7 +1227,7 @@ object Classpaths {
projectDependencies.value ++ libraryDependencies.value
},
ivyScala <<= ivyScala or (scalaHome, scalaVersion in update, scalaBinaryVersion in update, scalaOrganization, sbtPlugin) { (sh, fv, bv, so, plugin) =>
- Some(new IvyScala(fv, bv, Nil, filterImplicit = false, checkExplicit = true, overrideScalaVersion = plugin, scalaOrganization = so))
+ Some(new IvyScala(fv, bv, Nil, filterImplicit = false, checkExplicit = true, overrideScalaVersion = true, scalaOrganization = so))
},
artifactPath in makePom <<= artifactPathSetting(artifact in makePom),
publishArtifact in makePom := publishMavenStyle.value && publishArtifact.value,
diff --git a/project/Dependencies.scala b/project/Dependencies.scala
index d7b5ccad0..817af7e28 100644
--- a/project/Dependencies.scala
+++ b/project/Dependencies.scala
@@ -11,7 +11,7 @@ object Dependencies {
// sbt modules
val ioVersion = "1.0.0-M6"
val utilVersion = "0.1.0-M13"
- val librarymanagementVersion = "0.1.0-M11"
+ val librarymanagementVersion = "0.1.0-M12"
val zincVersion = "1.0.0-M3"
lazy val sbtIO = "org.scala-sbt" %% "io" % ioVersion
lazy val utilCollection = "org.scala-sbt" %% "util-collection" % utilVersion
diff --git a/sbt/src/sbt-test/dependency-management/exclude-scala/build.sbt b/sbt/src/sbt-test/dependency-management/exclude-scala/build.sbt
index ce9ed62b6..d5ffa1bec 100644
--- a/sbt/src/sbt-test/dependency-management/exclude-scala/build.sbt
+++ b/sbt/src/sbt-test/dependency-management/exclude-scala/build.sbt
@@ -6,6 +6,7 @@ lazy val root = (project in file(".")).
settings(
libraryDependencies <++= baseDirectory(dependencies),
scalaVersion := "2.9.2",
+ ivyScala := { ivyScala.value map {_.copy(overrideScalaVersion = sbtPlugin.value)} },
autoScalaLibrary <<= baseDirectory(base => !(base / "noscala").exists ),
scalaOverride <<= check("scala.App")
)
diff --git a/sbt/src/sbt-test/dependency-management/scala-organization/build.sbt b/sbt/src/sbt-test/dependency-management/scala-organization/build.sbt
new file mode 100644
index 000000000..217b3f4d7
--- /dev/null
+++ b/sbt/src/sbt-test/dependency-management/scala-organization/build.sbt
@@ -0,0 +1,54 @@
+organization := "org.dummy"
+
+scalaOrganization := "org.other"
+
+scalaVersion := "2.11.8"
+
+resolvers += Resolver.file("buggy", (baseDirectory in LocalRootProject).value / "repo")(
+ Patterns(
+ ivyPatterns = Seq("[organization]/[module]/[revision]/ivy.xml"),
+ artifactPatterns = Seq("[organization]/[module]/[revision]/dummy.jar"),
+ isMavenCompatible = false,
+ descriptorOptional = true,
+ skipConsistencyCheck = true
+ )
+)
+
+libraryDependencies += "org.typelevel" %% "cats" % "0.6.0"
+
+val checkDependencies = taskKey[Unit]("Checks that dependcies are correct.")
+
+checkDependencies := {
+ val expected: Set[ModuleID] = Set(
+ "com.github.mpilquist" % "simulacrum_2.11" % "0.7.0",
+ "jline" % "jline" % "2.12.1",
+ "org.other" % "scala-compiler" % "2.11.8",
+ "org.other" % "scala-library" % "2.11.8",
+ "org.other" % "scala-reflect" % "2.11.8",
+ "org.scala-lang.modules" % "scala-parser-combinators_2.11" % "1.0.4",
+ "org.scala-lang.modules" % "scala-xml_2.11" % "1.0.5",
+ "org.scala-sbt" % "test-interface" % "1.0",
+ "org.scalacheck" % "scalacheck_2.11" % "1.12.5",
+ "org.typelevel" % "catalysts-macros_2.11" % "0.0.2",
+ "org.typelevel" % "catalysts-platform_2.11" % "0.0.2",
+ "org.typelevel" % "cats-core_2.11" % "0.6.0",
+ "org.typelevel" % "cats-free_2.11" % "0.6.0",
+ "org.typelevel" % "cats-kernel-laws_2.11" % "0.6.0",
+ "org.typelevel" % "cats-kernel_2.11" % "0.6.0",
+ "org.typelevel" % "cats-laws_2.11" % "0.6.0",
+ "org.typelevel" % "cats-macros_2.11" % "0.6.0",
+ "org.typelevel" % "cats_2.11" % "0.6.0",
+ "org.typelevel" % "discipline_2.11" % "0.4",
+ "org.typelevel" % "machinist_2.11" % "0.4.1",
+ "org.typelevel" % "macro-compat_2.11" % "1.1.0"
+ )
+
+ val resolved: Set[ModuleID] =
+ (for {
+ c <- update.value.configurations
+ m <- c.modules
+ if !m.evicted
+ } yield m.module.copy(extraAttributes = Map.empty)).toSet
+
+ assert(resolved == expected)
+}
diff --git a/sbt/src/sbt-test/dependency-management/scala-organization/repo/org.other/scala-compiler/2.11.8/dummy.jar b/sbt/src/sbt-test/dependency-management/scala-organization/repo/org.other/scala-compiler/2.11.8/dummy.jar
new file mode 100644
index 000000000..e69de29bb
diff --git a/sbt/src/sbt-test/dependency-management/scala-organization/repo/org.other/scala-compiler/2.11.8/ivy.xml b/sbt/src/sbt-test/dependency-management/scala-organization/repo/org.other/scala-compiler/2.11.8/ivy.xml
new file mode 100644
index 000000000..c0252721f
--- /dev/null
+++ b/sbt/src/sbt-test/dependency-management/scala-organization/repo/org.other/scala-compiler/2.11.8/ivy.xml
@@ -0,0 +1,37 @@
+
+
+
+
+
+ Scala Compiler
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/sbt/src/sbt-test/dependency-management/scala-organization/repo/org.other/scala-library/2.11.8/dummy.jar b/sbt/src/sbt-test/dependency-management/scala-organization/repo/org.other/scala-library/2.11.8/dummy.jar
new file mode 100644
index 000000000..e69de29bb
diff --git a/sbt/src/sbt-test/dependency-management/scala-organization/repo/org.other/scala-library/2.11.8/ivy.xml b/sbt/src/sbt-test/dependency-management/scala-organization/repo/org.other/scala-library/2.11.8/ivy.xml
new file mode 100644
index 000000000..fb4924a58
--- /dev/null
+++ b/sbt/src/sbt-test/dependency-management/scala-organization/repo/org.other/scala-library/2.11.8/ivy.xml
@@ -0,0 +1,28 @@
+
+
+
+
+
+ Scala Standard Library
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/sbt/src/sbt-test/dependency-management/scala-organization/repo/org.other/scala-reflect/2.11.8/dummy.jar b/sbt/src/sbt-test/dependency-management/scala-organization/repo/org.other/scala-reflect/2.11.8/dummy.jar
new file mode 100644
index 000000000..e69de29bb
diff --git a/sbt/src/sbt-test/dependency-management/scala-organization/repo/org.other/scala-reflect/2.11.8/ivy.xml b/sbt/src/sbt-test/dependency-management/scala-organization/repo/org.other/scala-reflect/2.11.8/ivy.xml
new file mode 100644
index 000000000..169793932
--- /dev/null
+++ b/sbt/src/sbt-test/dependency-management/scala-organization/repo/org.other/scala-reflect/2.11.8/ivy.xml
@@ -0,0 +1,29 @@
+
+
+
+
+
+ Scala Reflection Library
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/sbt/src/sbt-test/dependency-management/scala-organization/test b/sbt/src/sbt-test/dependency-management/scala-organization/test
new file mode 100644
index 000000000..9329a1c80
--- /dev/null
+++ b/sbt/src/sbt-test/dependency-management/scala-organization/test
@@ -0,0 +1 @@
+> checkDependencies
diff --git a/sbt/src/sbt-test/tests/scala-instance-classloader/build.sbt b/sbt/src/sbt-test/tests/scala-instance-classloader/build.sbt
index e5e0fd000..96aa4ea10 100644
--- a/sbt/src/sbt-test/tests/scala-instance-classloader/build.sbt
+++ b/sbt/src/sbt-test/tests/scala-instance-classloader/build.sbt
@@ -28,3 +28,5 @@ libraryDependencies += "com.novocode" % "junit-interface" % "0.11" % "test"
libraryDependencies += "com.typesafe.akka" %% "akka-actor" % "2.3.3" % "test"
scalaVersion := "2.11.0"
+
+ivyScala := ivyScala.value map {_.copy(overrideScalaVersion = sbtPlugin.value)}