Port dependency-management/make-pom-type

This commit is contained in:
Eugene Yokota 2016-03-28 13:58:48 -04:00
parent 91950e7188
commit b4ac9f4a87
2 changed files with 45 additions and 50 deletions

View File

@ -0,0 +1,45 @@
lazy val p1 = (project in file("p1")).
settings(
checkTask(expectedMongo),
libraryDependencies += "org.mongodb" %% "casbah" % "2.4.1" pomOnly(),
inThisBuild(List(
organization := "org.example",
version := "1.0",
scalaVersion := "2.9.2",
autoScalaLibrary := false
))
)
lazy val p2 = (project in file("p2")).
dependsOn(p1).
settings(
checkTask(expectedInter)
)
lazy val expectedMongo =
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>casbah_2.9.2</artifactId>
<version>2.4.1</version>
<type>pom</type>
</dependency>
lazy val expectedInter =
<dependency>
<groupId>org.example</groupId>
<artifactId>p1_2.9.2</artifactId>
<version>1.0</version>
</dependency>
def checkTask(expectedDep: xml.Elem) = TaskKey[Unit]("check-pom") <<= makePom map { file =>
val pom = xml.XML.loadFile(file)
val actual = pom \\ "dependencies"
val expected = <d>
{expectedDep}
</d>
def dropTopElem(s:String): String = s.split("""\n""").drop(1).dropRight(1).mkString("\n")
val pp = new xml.PrettyPrinter(Int.MaxValue, 0)
val expectedString = dropTopElem(pp.format(expected))
val actualString = dropTopElem(pp.formatNodes(actual))
assert(expectedString == actualString, "Expected dependencies section:\n" + expectedString + "\n\nActual:\n" + actualString)
}

View File

@ -1,50 +0,0 @@
import sbt._
import Keys._
import Import._
object build extends Build {
override def settings = super.settings ++ Seq(
organization := "org.example",
version := "1.0",
scalaVersion := "2.9.2",
autoScalaLibrary := false
)
lazy val p1 = Project("p1",file("p1")) settings(
checkTask(expectedMongo),
libraryDependencies += "org.mongodb" %% "casbah" % "2.4.1" pomOnly()
)
lazy val p2 = Project("p2", file("p2")) dependsOn(p1) settings(
checkTask(expectedInter)
)
lazy val expectedMongo =
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>casbah_2.9.2</artifactId>
<version>2.4.1</version>
<type>pom</type>
</dependency>
lazy val expectedInter =
<dependency>
<groupId>org.example</groupId>
<artifactId>p1_2.9.2</artifactId>
<version>1.0</version>
</dependency>
def checkTask(expectedDep: xml.Elem) = TaskKey[Unit]("check-pom") <<= makePom map { file =>
val pom = xml.XML.loadFile(file)
val actual = pom \\ "dependencies"
val expected = <d>
{expectedDep}
</d>
def dropTopElem(s:String): String = s.split("""\n""").drop(1).dropRight(1).mkString("\n")
val pp = new xml.PrettyPrinter(Int.MaxValue, 0)
val expectedString = dropTopElem(pp.format(expected))
val actualString = dropTopElem(pp.formatNodes(actual))
assert(expectedString == actualString, "Expected dependencies section:\n" + expectedString + "\n\nActual:\n" + actualString)
}
}