diff options
author | Li Haoyi <haoyi.sg@gmail.com> | 2018-06-09 11:44:56 -0700 |
---|---|---|
committer | Li Haoyi <haoyi.sg@gmail.com> | 2018-06-09 11:49:02 -0700 |
commit | 9d65a0e06338611bbc36854123683f29929e6e08 (patch) | |
tree | a10c3cebaa92c3cb11eb11af30768acdddb225f7 /scalalib/src | |
parent | ecb931f769080c89f17f76e51840c560ed079d57 (diff) | |
download | mill-9d65a0e06338611bbc36854123683f29929e6e08.tar.gz mill-9d65a0e06338611bbc36854123683f29929e6e08.tar.bz2 mill-9d65a0e06338611bbc36854123683f29929e6e08.zip |
avoid duplicating core scala libraries during artifact resolution to fix https://github.com/lihaoyi/mill/issues/368
Diffstat (limited to 'scalalib/src')
-rw-r--r-- | scalalib/src/mill/scalalib/JavaModule.scala | 9 | ||||
-rw-r--r-- | scalalib/src/mill/scalalib/ScalaModule.scala | 6 |
2 files changed, 12 insertions, 3 deletions
diff --git a/scalalib/src/mill/scalalib/JavaModule.scala b/scalalib/src/mill/scalalib/JavaModule.scala index 79fad9aa..de838794 100644 --- a/scalalib/src/mill/scalalib/JavaModule.scala +++ b/scalalib/src/mill/scalalib/JavaModule.scala @@ -76,7 +76,7 @@ trait JavaModule extends mill.Module with TaskModule { outer => )().flatten } - def mapDependencies(d: coursier.Dependency) = d + def mapDependencies = T.task{ d: coursier.Dependency => d } def resolveDeps(deps: Task[Agg[Dep]], sources: Boolean = false) = T.task{ resolveDependencies( @@ -84,7 +84,7 @@ trait JavaModule extends mill.Module with TaskModule { outer => resolveCoursierDependency().apply(_), deps(), sources, - mapDependencies = Some(mapDependencies) + mapDependencies = Some(mapDependencies()) ) } @@ -239,7 +239,10 @@ trait JavaModule extends mill.Module with TaskModule { outer => def ivyDepsTree(inverse: Boolean = false) = T.command { val (flattened, resolution) = Lib.resolveDependenciesMetadata( - repositories, resolveCoursierDependency().apply(_), transitiveIvyDeps(), Some(mapDependencies) + repositories, + resolveCoursierDependency().apply(_), + transitiveIvyDeps(), + Some(mapDependencies()) ) println(coursier.util.Print.dependencyTree(flattened, resolution, diff --git a/scalalib/src/mill/scalalib/ScalaModule.scala b/scalalib/src/mill/scalalib/ScalaModule.scala index 7e885415..a6f4d482 100644 --- a/scalalib/src/mill/scalalib/ScalaModule.scala +++ b/scalalib/src/mill/scalalib/ScalaModule.scala @@ -29,6 +29,12 @@ trait ScalaModule extends JavaModule { outer => } def scalaVersion: T[String] + override def mapDependencies = T.task{ d: coursier.Dependency => + val artifacts = Set("scala-library", "scala-compiler", "scala-reflect") + if (d.module.organization != "org.scala-lang" || !artifacts(d.module.name)) d + else d.copy(version = scalaVersion()) + } + override def resolveCoursierDependency: Task[Dep => coursier.Dependency] = T.task{ Lib.depToDependency(_: Dep, scalaVersion(), platformSuffix()) } |