From 877715fbb4e00f1593520045439a8834cf054bd6 Mon Sep 17 00:00:00 2001 From: Shani Elharrar Date: Fri, 9 Mar 2018 19:59:55 +0200 Subject: ScalaModule: Added ivyDepsTree command (#213) --- scalalib/src/mill/scalalib/ScalaModule.scala | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/scalalib/src/mill/scalalib/ScalaModule.scala b/scalalib/src/mill/scalalib/ScalaModule.scala index 5a355bc6..119d4d47 100644 --- a/scalalib/src/mill/scalalib/ScalaModule.scala +++ b/scalalib/src/mill/scalalib/ScalaModule.scala @@ -71,6 +71,7 @@ trait ScalaModule extends mill.Module with TaskModule { outer => def transitiveIvyDeps: T[Agg[Dep]] = T{ ivyDeps() ++ Task.traverse(moduleDeps)(_.transitiveIvyDeps)().flatten } + def upstreamCompileOutput = T{ Task.traverse(moduleDeps)(_.compile) } @@ -247,6 +248,20 @@ trait ScalaModule extends mill.Module with TaskModule { outer => ) } + def ivyDepsTree(inverse: Boolean = false) = T.command { + import coursier.{Cache, Fetch, Resolution} + + val flattened = ivyDeps().map(depToDependency(_, scalaVersion(), platformSuffix())).toSeq + val start = Resolution(flattened.toSet) + val fetch = Fetch.from(repositories, Cache.fetch()) + val resolution = start.process.run(fetch).unsafePerformSync + + println(coursier.util.Print.dependencyTree(flattened, resolution, + printExclusions = false, reverse = inverse)) + + Result.Success() + } + def runLocal(args: String*) = T.command { Jvm.runLocal( finalMainClass(), -- cgit v1.2.3