Scala SBT: автономная банка - PullRequest
17 голосов
/ 17 мая 2011

Ответ: Создание автономной банки с помощью Simple Build Tool выглядит как то, что мне нужно, но у меня не было достаточно информации, поэтому это продолжение.

(1) Как мне адаптировать ответ к моим потребностям?Я не понимаю, что нужно изменить.

(2) Какую команду запустить для создания автономной банки?

(3) Где я могу найти банку после того, как онабыл создан?


Что я пробовал:

  • Вставка кода в связанном ответе дословно в мой файл: project/build/dsg.scala.Теперь файл имеет

    class ForkRun(info: ProjectInfo) extends DefaultProject(info)

    (ранее использовался для запуска проектов на отдельной виртуальной машине из SBT) и новый:

    trait AssemblyProject extends BasicScalaProject

    из связанного ответа.

  • Я также пытался вставить тело (все defs и lazy val AssemblyProject в тело ForkRun.

Чтобы создать jar, я запустил package в приглашении SBT и получил:

[info] Packaging ./target/scala_2.8.1/dsg_2.8.1-1.0.jar ...
[info] Packaging complete.

Поэтому я попытался запустить dsg_2.8.1-1.0.jar из оболочкичерез:

java -jar dsg_2.8.1-1.0.jar 

Но я получаю:

Failed to load Main-Class manifest attribute from
dsg_2.8.1-1.0.jar

Может ли это быть вызвано наличием нескольких точек входа в мой проект? Я выбираю из списка при выполнении run изSBT подскажите. Возможно, мне нужно указать значение по умолчанию при создании пакета?

Ответы [ 2 ]

7 голосов
/ 17 мая 2011

Вот одна запись, которую я сделал для создания исполняемого фляги с SBT:

http://janxspirit.blogspot.com/2011/01/create-executable-scala-jar-with-sbt.html

1 голос
/ 05 февраля 2015

sbt-assembly - это плагин sbt для создания автономной фляги проекта Scala sbt со всеми его зависимостями.

См. этот пост для более подробной информации с примером.

...