From 16d27bb4820e86fae7254620a0ba76fb6f9f780d Mon Sep 17 00:00:00 2001 From: Trent Schmidt Date: Sat, 22 Apr 2017 22:36:43 -0700 Subject: [PATCH] Don't require adding type test-jar to classpathTypes E.g. when adding dependencies with a tests classifier --- .../main/scala/coursier/CoursierPlugin.scala | 5 ++++- .../sbt-test/sbt-coursier/classifiers/build.sbt | 2 ++ .../classifiers/project/plugins.sbt | 11 +++++++++++ .../classifiers/src/main/scala/Main.scala | 17 +++++++++++++++++ .../src/sbt-test/sbt-coursier/classifiers/test | 1 + 5 files changed, 35 insertions(+), 1 deletion(-) create mode 100644 sbt-coursier/src/sbt-test/sbt-coursier/classifiers/build.sbt create mode 100644 sbt-coursier/src/sbt-test/sbt-coursier/classifiers/project/plugins.sbt create mode 100644 sbt-coursier/src/sbt-test/sbt-coursier/classifiers/src/main/scala/Main.scala create mode 100644 sbt-coursier/src/sbt-test/sbt-coursier/classifiers/test diff --git a/sbt-coursier/src/main/scala/coursier/CoursierPlugin.scala b/sbt-coursier/src/main/scala/coursier/CoursierPlugin.scala index 8939eb1ce..d4956e0a0 100644 --- a/sbt-coursier/src/main/scala/coursier/CoursierPlugin.scala +++ b/sbt-coursier/src/main/scala/coursier/CoursierPlugin.scala @@ -158,7 +158,10 @@ object CoursierPlugin extends AutoPlugin { Some(Configuration("docs", "", isPublic = true, extendsConfigs = Vector.empty, transitive = false)) confs ++ extraSources.toSeq ++ extraDocs.toSeq - } + }, + // Tests artifacts from Maven repositories are given this type. + // Adding it here so that these work straightaway. + classpathTypes += "test-jar" ) override lazy val buildSettings = super.buildSettings ++ Seq( diff --git a/sbt-coursier/src/sbt-test/sbt-coursier/classifiers/build.sbt b/sbt-coursier/src/sbt-test/sbt-coursier/classifiers/build.sbt new file mode 100644 index 000000000..21f304a4b --- /dev/null +++ b/sbt-coursier/src/sbt-test/sbt-coursier/classifiers/build.sbt @@ -0,0 +1,2 @@ +scalaVersion := "2.11.8" +libraryDependencies += "org.jclouds.api" % "nova" % "1.5.9" classifier "tests" diff --git a/sbt-coursier/src/sbt-test/sbt-coursier/classifiers/project/plugins.sbt b/sbt-coursier/src/sbt-test/sbt-coursier/classifiers/project/plugins.sbt new file mode 100644 index 000000000..152225a9e --- /dev/null +++ b/sbt-coursier/src/sbt-test/sbt-coursier/classifiers/project/plugins.sbt @@ -0,0 +1,11 @@ +{ + val pluginVersion = sys.props.getOrElse( + "plugin.version", + throw new RuntimeException( + """|The system property 'plugin.version' is not defined. + |Specify this property using the scriptedLaunchOpts -D.""".stripMargin + ) + ) + + addSbtPlugin("io.get-coursier" % "sbt-coursier" % pluginVersion) +} diff --git a/sbt-coursier/src/sbt-test/sbt-coursier/classifiers/src/main/scala/Main.scala b/sbt-coursier/src/sbt-test/sbt-coursier/classifiers/src/main/scala/Main.scala new file mode 100644 index 000000000..7fedd9551 --- /dev/null +++ b/sbt-coursier/src/sbt-test/sbt-coursier/classifiers/src/main/scala/Main.scala @@ -0,0 +1,17 @@ +import java.io.File +import java.nio.file.Files + +import scala.util.Try + +object Main extends App { + + def classFound(clsName: String) = Try( + Thread.currentThread() + .getContextClassLoader() + .loadClass(clsName) + ).toOption.nonEmpty + + val classifierTest = classFound("org.jclouds.openstack.nova.functions.ParseServerFromJsonResponseTest") + + assert(classifierTest, s"Couldn't find classifierTest") +} diff --git a/sbt-coursier/src/sbt-test/sbt-coursier/classifiers/test b/sbt-coursier/src/sbt-test/sbt-coursier/classifiers/test new file mode 100644 index 000000000..62ea636c1 --- /dev/null +++ b/sbt-coursier/src/sbt-test/sbt-coursier/classifiers/test @@ -0,0 +1 @@ +> run