为什么scala程序集包含jar中test文件夹中的application.conf文件?

时间:2016-07-22 14:19:41

标签: scala sbt

我有scala项目,我使用' assembly'命令在sbt。 我有两个application.conf文件,一个在scala / main中,一个在scala / test文件夹中。

构建jar包含来自test文件夹的application.conf文件,我不想要它。我希望jar包含来自scala / main文件夹的application.conf文件。

如何使用assemble命令在生成的jar中包含该文件。请建议。

1 个答案:

答案 0 :(得分:3)

来自README

  

如果多个文件共享相同的相对路径(例如,多个依赖项JAR中名为application.conf的资源),则默认策略是验证所有候选项具有相同的内容,否则会出错。

因此,如果它没有给您一个错误,那么这两个文件可能是相同的。您可以自定义行为,并明确排除一个行为。以下是您可以添加到build.sbt的示例配置:

assemblyMergeStrategy in assembly := {
  case PathList("scala", "test", "resources", "application.conf") =>
    MergeStrategy.discard
  case x =>
    val defaultStrategy = (assemblyMergeStrategy in assembly).value
    defaultStrategy(x)
}