0
私はいくつかのサブプロジェクトを含む大きなルートのsbtプロジェクトを持っています。これらのプロジェクト定義の中には、私が削除しようとしているコードの重複がたくさんあります。たとえば、すべてのアセンブリのプロジェクトは、次のコードが含まれ暗黙のクラスを使用してbuild.sbt構文を拡張することはできますか?
:
project
.enablePlugins(sbtassembly.AssemblyPlugin)
.settings(
mainClass in Compile := Some(mainClassName),
assemblyJarName in assembly := jarName,
assemblyMergeStrategy in assembly := {
case PathList("META-INF", [email protected]_*) => MergeStrategy.discard
case PathList("sandbox.sc") => MergeStrategy.discard
case PathList("org", "joda", "time", [email protected]_*) => MergeStrategy.first
case PathList("reference.conf") => MergeStrategy.concat
case x => MergeStrategy.deduplicate
}
)
を代わりに私はそのような何かを書きたいと思います:
project
.assembly(className, jarName)
は、そのような構文を実現することは可能ですか?私は暗黙のクラスを使用して、典型的なスカラーファイルでこの構文を達成することが可能であることを知っています。これらはsbtでそれを行う方法ですか?
ありがとうございました@chengpohi、それは風のように動作し、より良いsbtを理解するのを助けました。 – nanarth