Скажите SBT, чтобы собрать все мои зависимости вместе - PullRequest
18 голосов
/ 06 апреля 2011

При создании веб-приложения SBT может собирать все мои зависимости jar в файл WAR.

Возможно ли, чтобы SBT поместил все каталоги, от которых зависит мой не-веб-приложение, в каталогчтобы я мог легко поместить их в свой путь к классу при запуске приложения?

Ответы [ 3 ]

10 голосов
/ 09 апреля 2011

Да, вы можете поместить что-то вроде этого в ваш класс определения проекта:

val libraryJarPath = outputPath / "lib"

def collectJarsTask = {
  val jars = mainDependencies.libraries +++ mainDependencies.scalaJars
  FileUtilities.copyFlat(jars.get, libraryJarPath, log)
}

lazy val collectJars = task { collectJarsTask; None } dependsOn(compile)

и запустить задачу через collect-jars в вашей консоли SBT.Это скопирует scala-library.jar и jar-файлы, используемые для компиляции, в каталог с именем lib в том же каталоге, что и ваш каталог classes.

2 голосов
/ 01 сентября 2014

По моему честному мнению, не беспокойтесь о sbt-сборке. Я новичок в scala, но я довольно технологичен, я использую много технологий и sbt-сборки, это не чисто Просто мнение.

Я бы порекомендовал вам sbt-pack. Потрясающая работа. Он также даст вам исполняемые скрипты, как для WINDOWS, так и для Linux.

https://github.com/xerial/sbt-pack

2 голосов
/ 15 августа 2013

Вы можете использовать sbt-assembly для создания толстой фляги со всеми зависимостями: https://github.com/sbt/sbt-assembly

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...