【问题标题】:How to exclude resources during packaging with SBT but not during testing如何在使用 SBT 打包期间而不是在测试期间排除资源
【发布时间】:2013-12-27 19:04:43
【问题描述】:

我在这样的项目结构中有一堆 conf 文件:

```

src / main / resources / live.conf
src / test / resources / test.conf

```

我想从运行 sbt one-jar(使用 one-jar 插件)时构建的工件中排除 live.conf。我添加了这一行,不幸的是在运行 sbt test:compile 时也排除了 test.conf

excludeFilter in Runtime in unmanagedResources := "*.conf"

如何排除工件 jar 中的 live.conf 但不用于测试?

【问题讨论】:

    标签: scala sbt


    【解决方案1】:

    这应该会有所帮助:

    mappings in (Compile, packageBin) ~= { _.filter(!_._1.getName.endsWith(".conf")) }
    

    packageBin 是一项生成 jar 工件的任务,mappings 表示在Compile 范围内用于编译和项目打包的文件

    【讨论】:

    • 像魅力一样工作!谢谢
    • @4lex1v 我在 build.st 中尝试了您对 Scala Play 2 的建议,该项目带有从 Typesafe activator 1.3.2 模板创建的 Akka 项目。每次我运行激活器compilepackage 命令时,生成的jar 文件都会在jar 文件的基本目录中包含我的application.conf 文件。你知道任何变化吗?你有什么建议吗?谢谢。
    • 如何添加更多扩展?我尝试在 (Compile, packageBin) ~= { .filter(!._1.getName.endsWith(".properties") || !_._1.getName.endsWith(".xml" )) } 但这不起作用
    • @carfield 我会列出一个包含各种扩展名的列表,然后打电话给.contains
    • 问题:当我执行sbt run 时,排除的文件也不存在。我该如何解决? (尝试使用 SBT 1.0.2 和 1.0.3)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-11-14
    • 1970-01-01
    • 1970-01-01
    • 2020-10-14
    • 2017-08-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多