From d27c0ee46eeb9573403262d5ee9556aa99cf8d6c Mon Sep 17 00:00:00 2001 From: Alexandre Archambault Date: Fri, 27 Oct 2017 16:13:10 +0200 Subject: [PATCH] Quick hack to make publishSigned work again with sbt 1.0.2 Ideally, the scripted tests should still be run with sbt 1.0.1 too, to ensure there are no regression with it, but the current setup doesn't make that easy. --- project/Settings.scala | 2 +- .../coursier/SbtCompatibility.scala | 4 +-- .../coursier/SbtCompatibility.scala | 25 +++++++++++++++++-- .../main/scala/coursier/CoursierPlugin.scala | 5 ++-- 4 files changed, 28 insertions(+), 8 deletions(-) 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,