Ответ 1
(Отказ от ответственности: я поддерживаю sbt-сборку)
SBT-сборки
sbt-assembly создает толстый JAR - один JAR файл, содержащий все файлы классов из вашего кода и библиотек. По эволюции он также содержит способы разрешения конфликтов, когда несколько JAR предоставляют один и тот же путь к файлу (например, файл config или README). Это включает в себя распаковку всех библиотечных JAR, поэтому она немного медленная, но они сильно кэшированы.
SBT-пакет
sbt-pack сохраняет все библиотеки JAR неповрежденными, перемещает их в каталог target/pack
(в отличие от кэша плюща, где они обычно живут ) и создает оболочку script для запуска.
SBT-нативной упаковщик
sbt-native-packager похож на sbt-pack, но он был запущен коммиттером sbt Josh Suereth, и теперь поддерживается высокопроизводительным Nepomuk Seiler (также известный как muuki88). Плагин поддерживает ряд форматов, таких как файл MSI Windows и файл debbian deb. Недавнее дополнение - это поддержка Docker images.
Все являются жизнеспособными средствами создания изображений развертывания. В некоторых случаях, таких как развертывание вашего приложения в веб-среде и т.д., Это может облегчить работу, если вы имеете дело с одним файлом, а не с дюжиной.
Почетное упоминание: sbt-progard и sbt-onejar.