diff --git a/scalalib/src/mill/scalalib/Dep.scala b/scalalib/src/mill/scalalib/Dep.scala index f67eed0387c..bd7fce4fb1e 100644 --- a/scalalib/src/mill/scalalib/Dep.scala +++ b/scalalib/src/mill/scalalib/Dep.scala @@ -3,20 +3,6 @@ import mill.util.JsonFormatters._ import upickle.default.{macroRW, ReadWriter => RW} sealed trait Dep { def configure(attributes: coursier.Attributes): Dep - def exclude(exclusions: (String, String)*): Dep = - this match { - case dep : Dep.Java => dep.copy(dep = dep.dep.copy(exclusions = dep.dep.exclusions ++ exclusions)) - case dep : Dep.Scala => dep.copy(dep = dep.dep.copy(exclusions = dep.dep.exclusions ++ exclusions)) - case dep : Dep.Point => dep.copy(dep = dep.dep.copy(exclusions = dep.dep.exclusions ++ exclusions)) - } - def excludeOrg(organizations: String*): Dep = exclude(organizations.map(_ -> "*"): _*) - def excludeName(names: String*): Dep = exclude(names.map("*" -> _): _*) - def withConfiguration(configuration: String): Dep = - this match { - case dep : Dep.Java => dep.copy(dep = dep.dep.copy(configuration = configuration)) - case dep : Dep.Scala => dep.copy(dep = dep.dep.copy(configuration = configuration)) - case dep : Dep.Point => dep.copy(dep = dep.dep.copy(configuration = configuration)) - } } object Dep{ diff --git a/scalalib/src/mill/scalalib/publish/Ivy.scala b/scalalib/src/mill/scalalib/publish/Ivy.scala index 3b271fa8e11..644e2c53099 100644 --- a/scalalib/src/mill/scalalib/publish/Ivy.scala +++ b/scalalib/src/mill/scalalib/publish/Ivy.scala @@ -41,12 +41,8 @@ object Ivy { } private def renderDependency(dep: Dependency) = { - if (dep.exclusions.isEmpty) - default(${dep.configuration.getOrElse("compile")})"} /> - else - default(${dep.configuration.getOrElse("compile")})"}> - {dep.exclusions.map(ex => ).toSeq} - + val scope = scopeToConf(dep.scope) + default(compile)"}> } private def scopeToConf(s: Scope): String = s match { diff --git a/scalalib/src/mill/scalalib/publish/Pom.scala b/scalalib/src/mill/scalalib/publish/Pom.scala index 3c8ba4dc798..1a86e7de79e 100644 --- a/scalalib/src/mill/scalalib/publish/Pom.scala +++ b/scalalib/src/mill/scalalib/publish/Pom.scala @@ -90,28 +90,12 @@ object Pom { case Scope.Test => test case Scope.Runtime => runtime } - if (d.exclusions.isEmpty) - - {d.artifact.group} - {d.artifact.id} - {d.artifact.version} - {scope} - - else - - {d.artifact.group} - {d.artifact.id} - {d.artifact.version} - - {d.exclusions.map(ex => - - {ex._1} - {ex._2} - - )}.toSeq - - {scope} - + + {d.artifact.group} + {d.artifact.id} + {d.artifact.version} + {scope} + } } diff --git a/scalalib/src/mill/scalalib/publish/settings.scala b/scalalib/src/mill/scalalib/publish/settings.scala index 34f7e7ad728..1076fb41b79 100644 --- a/scalalib/src/mill/scalalib/publish/settings.scala +++ b/scalalib/src/mill/scalalib/publish/settings.scala @@ -15,9 +15,7 @@ object Artifact { case Dep.Java(dep, cross) => Dependency( Artifact(dep.module.organization, dep.module.name, dep.version), - Scope.Compile, - if (dep.configuration == "" ) None else Some(dep.configuration), - dep.exclusions.toList + Scope.Compile ) case Dep.Scala(dep, cross) => Dependency( @@ -26,9 +24,7 @@ object Artifact { s"${dep.module.name}_${scalaBin}", dep.version ), - Scope.Compile, - if (dep.configuration == "") None else Some(dep.configuration), - dep.exclusions.toList + Scope.Compile ) case Dep.Point(dep, cross) => Dependency( @@ -37,9 +33,7 @@ object Artifact { s"${dep.module.name}_${scalaFull}", dep.version ), - Scope.Compile, - if (dep.configuration == "") None else Some(dep.configuration), - dep.exclusions.toList + Scope.Compile ) } } @@ -55,9 +49,7 @@ object Scope { case class Dependency( artifact: Artifact, - scope: Scope, - configuration: Option[String] = None, - exclusions: Seq[(String, String)] = Nil + scope: Scope ) case class Developer( diff --git a/scalalib/test/src/mill/scalalib/ResolveDepsTests.scala b/scalalib/test/src/mill/scalalib/ResolveDepsTests.scala index 861fa3129c5..97fcbd505e7 100644 --- a/scalalib/test/src/mill/scalalib/ResolveDepsTests.scala +++ b/scalalib/test/src/mill/scalalib/ResolveDepsTests.scala @@ -34,24 +34,6 @@ object ResolveDepsTests extends TestSuite { assert(paths.exists(_.path.toString.contains("byte-buddy"))) } - 'excludeTransitiveDeps - { - val deps = Agg(ivy"com.lihaoyi::pprint:0.5.3".exclude("com.lihaoyi" -> "fansi_2.12")) - val Success(paths) = evalDeps(deps) - assert(!paths.exists(_.path.toString.contains("fansi_2.12"))) - } - - 'excludeTransitiveDepsByOrg - { - val deps = Agg(ivy"com.lihaoyi::pprint:0.5.3".excludeOrg("com.lihaoyi")) - val Success(paths) = evalDeps(deps) - assert(!paths.exists(path => path.path.toString.contains("com/lihaoyi") && !path.path.toString.contains("pprint_2.12"))) - } - - 'excludeTransitiveDepsByName - { - val deps = Agg(ivy"com.lihaoyi::pprint:0.5.3".excludeName("fansi_2.12")) - val Success(paths) = evalDeps(deps) - assert(!paths.exists(_.path.toString.contains("fansi_2.12"))) - } - 'errOnInvalidOrgDeps - { val deps = Agg(ivy"xxx.yyy.invalid::pprint:0.5.3") val Failure(errMsg, _) = evalDeps(deps) diff --git a/scalalib/test/src/mill/scalalib/publish/IvyTests.scala b/scalalib/test/src/mill/scalalib/publish/IvyTests.scala deleted file mode 100644 index 0f275dd98a8..00000000000 --- a/scalalib/test/src/mill/scalalib/publish/IvyTests.scala +++ /dev/null @@ -1,60 +0,0 @@ -package mill.scalalib.publish - -import utest._ -import mill._ - -import scala.xml.{Node, NodeSeq, XML} - -object IvyTests extends TestSuite { - - def tests: Tests = Tests { - val artifactId = "mill-scalalib_2.12" - val artifact = - Artifact("com.lihaoyi", "mill-scalalib_2.12", "0.0.1") - val deps = Agg( - Dependency(Artifact("com.lihaoyi", "mill-main_2.12", "0.1.4"), - Scope.Compile), - Dependency(Artifact("org.scala-sbt", "test-interface", "1.0"), - Scope.Compile), - Dependency(Artifact("com.lihaoyi", "pprint_2.12", "0.5.3"), - Scope.Compile, exclusions = List("com.lihaoyi" -> "fansi_2.12", "*" -> "sourcecode_2.12")) - ) - - 'fullIvy - { - val fullIvy = XML.loadString(Ivy(artifact, deps)) - - 'topLevel - { - val info = singleNode(fullIvy \ "info") - assert( - singleAttr(info, "organisation") == artifact.group - , singleAttr(info, "module") == artifact.id - , singleAttr(info, "revision") == artifact.version - ) - } - - 'dependencies - { - val dependencies = fullIvy \ "dependencies" \ "dependency" - val ivyDeps = deps.indexed - - assert(dependencies.size == ivyDeps.size) - - dependencies.zipWithIndex.foreach { case (dep, index) => - assert( - singleAttr(dep, "org") == ivyDeps(index).artifact.group - , singleAttr(dep, "name") == ivyDeps(index).artifact.id - , singleAttr(dep, "rev") == ivyDeps(index).artifact.version - , (dep \ "exclude").zipWithIndex forall { case (exclude, j) => - singleAttr(exclude, "org") == ivyDeps(index).exclusions(j)._1 && - singleAttr(exclude, "name") == ivyDeps(index).exclusions(j)._2 - } - ) - } - } - } - } - - def singleNode(seq: NodeSeq): Node = - seq.headOption.getOrElse(throw new RuntimeException("empty seq")) - def singleAttr(node: Node, attr: String): String = - node.attribute(attr).flatMap(_.headOption.map(_.text)).getOrElse(throw new RuntimeException(s"empty attr $attr")) -} diff --git a/scalalib/test/src/mill/scalalib/publish/PomTests.scala b/scalalib/test/src/mill/scalalib/publish/PomTests.scala index c15ff172d83..31e874467c7 100644 --- a/scalalib/test/src/mill/scalalib/publish/PomTests.scala +++ b/scalalib/test/src/mill/scalalib/publish/PomTests.scala @@ -15,9 +15,7 @@ object PomTests extends TestSuite { Dependency(Artifact("com.lihaoyi", "mill-main_2.12", "0.1.4"), Scope.Compile), Dependency(Artifact("org.scala-sbt", "test-interface", "1.0"), - Scope.Compile), - Dependency(Artifact("com.lihaoyi", "pprint_2.12", "0.5.3"), - Scope.Compile, exclusions = List("com.lihaoyi" -> "fansi_2.12", "*" -> "sourcecode_2.12")) + Scope.Compile) ) val settings = PomSettings( description = "mill-scalalib", @@ -106,7 +104,7 @@ object PomTests extends TestSuite { 'dependencies - { val dependencies = fullPom \ "dependencies" \ "dependency" - assert(dependencies.size == 3) + assert(dependencies.size == 2) val pomDeps = deps.indexed @@ -116,11 +114,7 @@ object PomTests extends TestSuite { singleText(dep \ "groupId") == pomDeps(index).artifact.group, singleText(dep \ "artifactId") == pomDeps(index).artifact.id, singleText(dep \ "version") == pomDeps(index).artifact.version, - optText(dep \ "scope").isEmpty, - (dep \ "exclusions").zipWithIndex.forall { case (node, j) => - singleText(node \ "exclude" \ "groupId") == pomDeps(index).exclusions(j)._1 && - singleText(node \ "exclude" \ "artifactId") == pomDeps(index).exclusions(j)._2 - } + optText(dep \ "scope").isEmpty ) } }