diff --git a/project/Settings.scala b/project/Settings.scala index bff1b25e3..81d4d332d 100644 --- a/project/Settings.scala +++ b/project/Settings.scala @@ -206,7 +206,7 @@ object Settings { sbtVersion := { scalaBinaryVersion.value match { case "2.10" => "0.13.8" - case "2.12" => "1.0.1" + case "2.12" => "1.0.2" case _ => sbtVersion.value } }, diff --git a/sbt-coursier/src/main/scala-2.10/coursier/SbtCompatibility.scala b/sbt-coursier/src/main/scala-2.10/coursier/SbtCompatibility.scala index 6923d7538..a71ec59fb 100644 --- a/sbt-coursier/src/main/scala-2.10/coursier/SbtCompatibility.scala +++ b/sbt-coursier/src/main/scala-2.10/coursier/SbtCompatibility.scala @@ -137,7 +137,7 @@ object SbtCompatibility { def dependencies = module.modules } - def needsIvyXmlLocal = sbt.Keys.deliverLocalConfiguration - def needsIvyXml = sbt.Keys.deliverConfiguration + def needsIvyXmlLocal = List(sbt.Keys.deliverLocalConfiguration) + def needsIvyXml = List(sbt.Keys.deliverConfiguration) } diff --git a/sbt-coursier/src/main/scala-2.12/coursier/SbtCompatibility.scala b/sbt-coursier/src/main/scala-2.12/coursier/SbtCompatibility.scala index 03bc05553..22f70aaed 100644 --- a/sbt-coursier/src/main/scala-2.12/coursier/SbtCompatibility.scala +++ b/sbt-coursier/src/main/scala-2.12/coursier/SbtCompatibility.scala @@ -16,7 +16,28 @@ object SbtCompatibility { type IvySbt = sbt.internal.librarymanagement.IvySbt - def needsIvyXmlLocal = sbt.Keys.publishLocalConfiguration - def needsIvyXml = sbt.Keys.publishConfiguration + lazy val needsIvyXmlLocal = Seq(sbt.Keys.publishLocalConfiguration) ++ { + try { + val cls = sbt.Keys.getClass + val m = cls.getMethod("makeIvyXmlLocalConfiguration") + val task = m.invoke(sbt.Keys).asInstanceOf[sbt.TaskKey[sbt.PublishConfiguration]] + List(task) + } catch { + case _: Throwable => // FIXME Too wide + Nil + } + } + + lazy val needsIvyXml = Seq(sbt.Keys.publishConfiguration) ++ { + try { + val cls = sbt.Keys.getClass + val m = cls.getMethod("makeIvyXmlConfiguration") + val task = m.invoke(sbt.Keys).asInstanceOf[sbt.TaskKey[sbt.PublishConfiguration]] + List(task) + } catch { + case _: Throwable => // FIXME Too wide + Nil + } + } } diff --git a/sbt-coursier/src/main/scala/coursier/CoursierPlugin.scala b/sbt-coursier/src/main/scala/coursier/CoursierPlugin.scala index 9b8892502..29bcb36ea 100644 --- a/sbt-coursier/src/main/scala/coursier/CoursierPlugin.scala +++ b/sbt-coursier/src/main/scala/coursier/CoursierPlugin.scala @@ -196,8 +196,6 @@ object CoursierPlugin extends AutoPlugin { withClassifiers = true, sbtClassifiers = true ).value, - makeIvyXmlBefore(needsIvyXmlLocal, shadedConfigOpt), - makeIvyXmlBefore(needsIvyXml, shadedConfigOpt), update := Tasks.updateTask( shadedConfigOpt, withClassifiers = false @@ -280,7 +278,8 @@ object CoursierPlugin extends AutoPlugin { // Tests artifacts from Maven repositories are given this type. // Adding it here so that these work straightaway. classpathTypes += "test-jar" - ) + ) ++ + (needsIvyXml ++ needsIvyXmlLocal).map(makeIvyXmlBefore(_, shadedConfigOpt)) override lazy val buildSettings = super.buildSettings ++ Seq( coursierParallelDownloads := 6,