Подтвердить что ты не робот

Скажите SBT собрать все мои зависимости вместе

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

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

4b9b3361

Ответ 1

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

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 и банки, используемые для компиляции в каталоге с именем lib в том же каталоге, что и ваш каталог classes.

Ответ 2

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

Ответ 3

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

Я бы порекомендовал вам sbt-pack. Удивительная работа. Он также даст вам исполняемые скрипты для обоих... WINDOWS AND LINUX.

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