【问题标题】:why scala assembly include application.conf file from test folder in jar?为什么scala程序集包含jar中测试文件夹中的application.conf文件?
【发布时间】:2016-11-26 11:54:02
【问题描述】:

我有 scala 项目,我在 sbt 中使用“程序集”命令制作 jar。 我有两个 application.conf 文件,一个在 scala/main 中,一个在 scala/test 文件夹中。

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

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

【问题讨论】:

    标签: scala sbt


    【解决方案1】:

    来自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)
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-10-16
      • 2017-01-27
      • 2015-11-16
      • 2014-12-08
      • 1970-01-01
      • 2018-11-26
      • 1970-01-01
      • 2010-12-15
      相关资源
      最近更新 更多