我移动斯卡拉迁移从蚂蚁/常春藤SBT项目。 它可以选择使用log4jdbc作为库的依赖,不存在在任何公共Maven仓库 (从我可以找到)。
libraryDependencies +=
"log4jdbc" % "log4jdbc" % "1.1" from "http://log4jdbc.googlecode.com/files/log4jdbc4-1.1.jar"
我想生成的POM不包括log4jdbc,因为它不是在任何存储库。 这是一个正确的假设,POM将不上市log4jdbc更好? 此外,不会列出它的工作使用SBT斯卡拉迁移用户更好?
我写了下面的设置消除来自POM的log4jdbc依赖。 有没有更好的,更简单的方法? 可以设置被添加到SBT自动做到这一点?
// Do not include log4jdbc as a dependency.
pomPostProcess := { (node: scala.xml.Node) =>
val rewriteRule =
new scala.xml.transform.RewriteRule {
override def transform(n: scala.xml.Node): scala.xml.NodeSeq = {
val name = n.nameToString(new StringBuilder).toString
if (name == "dependency") {
if ((n \ "groupId").text == "log4jdbc")
scala.xml.NodeSeq.Empty
else
n
}
else {
n
}
}
}
val transformer = new scala.xml.transform.RuleTransformer(rewriteRule)
transformer.transform(node)(0)
}