From 10400ec8c556ead5e888afabe244ab3057bad79a Mon Sep 17 00:00:00 2001 From: Alexandre Archambault Date: Wed, 24 Feb 2016 20:22:29 +0100 Subject: [PATCH] Force versions of the usual org.scala-lang modules --- plugin/src/main/scala-2.10/coursier/Tasks.scala | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/plugin/src/main/scala-2.10/coursier/Tasks.scala b/plugin/src/main/scala-2.10/coursier/Tasks.scala index 96582b6fd..b88058e75 100644 --- a/plugin/src/main/scala-2.10/coursier/Tasks.scala +++ b/plugin/src/main/scala-2.10/coursier/Tasks.scala @@ -154,6 +154,14 @@ object Tasks { private val resolutionsCache = new mutable.HashMap[CacheKey, UpdateReport] + private def forcedScalaModules(scalaVersion: String): Map[Module, String] = + Map( + Module("org.scala-lang", "scala-library") -> scalaVersion, + Module("org.scala-lang", "scala-compiler") -> scalaVersion, + Module("org.scala-lang", "scala-reflect") -> scalaVersion, + Module("org.scala-lang", "scalap") -> scalaVersion + ) + def updateTask(withClassifiers: Boolean, sbtClassifiers: Boolean = false) = Def.task { // SBT logging should be better than that most of the time... @@ -209,6 +217,8 @@ object Tasks { val cachePolicy = coursierCachePolicy.value val cacheDir = coursierCache.value + val sv = scalaVersion.value // is this always defined? (e.g. for Java only projects?) + val resolvers = if (sbtClassifiers) coursierSbtResolvers.value @@ -221,7 +231,7 @@ object Tasks { val startRes = Resolution( currentProject.dependencies.map { case (_, dep) => dep }.toSet, filter = Some(dep => !dep.optional), - forceVersions = projects.map(_.moduleVersion).toMap + forceVersions = forcedScalaModules(sv) ++ projects.map(_.moduleVersion) ) // required for publish to be fine, later on