sbt-assembly: как исключить файлы конфигурации в src/main/resources

Я использую sbtassembly из https://github.com/sbt/sbt-assembly для упаковки своих проект.

Мне интересно, можно ли вообще исключить файлы ресурсов?


person Fihop    schedule 02.02.2016    source источник


Ответы (2)


Вы можете указать файлы (и пути) для исключения, настроив mergeStrategy: https://github.com/sbt/sbt-assembly#except-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

person Dani    schedule 02.02.2016

Используя подход Дэни с sbt 0.13.13, файлы конфигурации все еще были включены в мою банку. Это сработало, хотя:

excludeFilter in Compile := "myconfig.conf",

В моем случае все файлы имеют одно и то же имя, myconfig.conf, но существуют в древовидной структуре в src/main/resources/config. Я старался:

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

Но он удалил каталоги из банки, оставив файлы.

Это задокументировано здесь: http://www.scala-sbt.org/0.13/docs/Howto-Customizing-Paths.html

person Don Branson    schedule 10.02.2017