Scala Migrationsプロジェクトを ant/ivy から sbt に移行しています。オプションで、公開されている Maven リポジトリには存在しないライブラリ依存関係として log4jdbc を使用します(私が見つけたものから)。
libraryDependencies +=
"log4jdbc" % "log4jdbc" % "1.1" from "http://log4jdbc.googlecode.com/files/log4jdbc4-1.1.jar"
生成された POM に log4jdbc を含めないようにしたいと思います。これはどのリポジトリにもないためです。これは、log4jdbc をリストしなくても POM が改善されるという正しい仮定ですか? また、sbt を使用している Scala Migrations ユーザーにとっては、それをリストする方がうまくいくのではないでしょうか?
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)
}