summaryrefslogtreecommitdiff
path: root/scalalib/test/src
diff options
context:
space:
mode:
authorLi Haoyi <haoyi.sg@gmail.com>2018-03-26 20:16:43 -0700
committerLi Haoyi <haoyi.sg@gmail.com>2018-03-26 20:16:43 -0700
commit25b321ea9431590d5852366585f1691717651fea (patch)
tree7416fc038f41fbb0c4b7493f6a4827d0cf53e000 /scalalib/test/src
parentc27a29058e990c5aa965bf71e19290de7f9793b4 (diff)
downloadmill-25b321ea9431590d5852366585f1691717651fea.tar.gz
mill-25b321ea9431590d5852366585f1691717651fea.tar.bz2
mill-25b321ea9431590d5852366585f1691717651fea.zip
Ensure that transitive ivy jars are not directly aggregated under a module's `runClasspath`; only the ivy coordinates are aggregated, and every module resolves it's own set of ivy jars using coursier, which avoids duplicate jars entering the classpath through ivy
Fixes https://github.com/lihaoyi/mill/issues/211
Diffstat (limited to 'scalalib/test/src')
-rw-r--r--scalalib/test/src/mill/scalalib/HelloWorldTests.scala25
1 files changed, 25 insertions, 0 deletions
diff --git a/scalalib/test/src/mill/scalalib/HelloWorldTests.scala b/scalalib/test/src/mill/scalalib/HelloWorldTests.scala
index 8b7c459f..74078221 100644
--- a/scalalib/test/src/mill/scalalib/HelloWorldTests.scala
+++ b/scalalib/test/src/mill/scalalib/HelloWorldTests.scala
@@ -87,6 +87,17 @@ object HelloWorldTests extends TestSuite {
override def scalaVersion: Target[String] = "2.11.11"
}
}
+
+ object HelloWorldIvyDeps extends HelloBase{
+ object moduleA extends HelloWorldModule {
+
+ override def ivyDeps = Agg(ivy"com.lihaoyi::sourcecode:0.1.3")
+ }
+ object moduleB extends HelloWorldModule {
+ override def moduleDeps = Seq(moduleA)
+ override def ivyDeps = Agg(ivy"com.lihaoyi::sourcecode:0.1.4")
+ }
+ }
val resourcePath = pwd / 'scalalib / 'test / 'resources / "hello-world"
def jarMainClass(jar: JarFile): Option[String] = {
@@ -413,6 +424,20 @@ object HelloWorldTests extends TestSuite {
)
}
}
+
+ 'ivyDeps - workspaceTest(HelloWorldIvyDeps){ eval =>
+ val Right((result, _)) = eval.apply(HelloWorldIvyDeps.moduleA.runClasspath)
+ assert(
+ result.exists(_.path.last == "sourcecode_2.12-0.1.3.jar"),
+ !result.exists(_.path.last == "sourcecode_2.12-0.1.4.jar")
+ )
+
+ val Right((result2, _)) = eval.apply(HelloWorldIvyDeps.moduleB.runClasspath)
+ assert(
+ result2.exists(_.path.last == "sourcecode_2.12-0.1.4.jar"),
+ !result2.exists(_.path.last == "sourcecode_2.12-0.1.3.jar")
+ )
+ }
}