sbt-assembly:如何排除src / main / resources中的配置文件

时间:2016-02-02 19:17:31

标签: scala sbt sbt-assembly

我正在使用https://github.com/sbt/sbt-assembly中的sbtassembly打包我的项目。

我想知道有没有排除资源文件?

2 个答案:

答案 0 :(得分:4)

您可以通过自定义mergeStrategy指定要排除的文件(和路径): https://github.com/sbt/sbt-assembly#excluding-specific-files

因此,为了丢弃特定文件,您可以执行以下操作:

// build.sbt

assemblyMergeStrategy in assembly := {
  case PathList("about.html") => MergeStrategy.discard
  case x =>
    val oldStrategy = (assemblyMergeStrategy in assembly).value
    oldStrategy(x)
}

以下是所有可用策略的文档: https://github.com/sbt/sbt-assembly#merge-strategy

答案 1 :(得分:0)

使用Dani的sbt 0.13.13方法,配置文件仍然包含在我的jar中。但这很有用:

excludeFilter in Compile := "myconfig.conf",

就我而言,所有文件都具有相同的名称myconfig.conf,但存在于src / main / resources / config下的树结构中。我试过了:

unmanagedResourceDirectories in Compile += { baseDirectory.value / "src/main/resources/config" },

但它从jar中删除了目录,留下了文件。

这里记录了:http://www.scala-sbt.org/0.13/docs/Howto-Customizing-Paths.html