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

Scala SBT: автономная банка

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

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

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

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


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

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

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

    (ранее, используется для запуска проектов в отдельной VM из 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. Возможно, мне нужно указать значение по умолчанию при создании пакета?

4b9b3361

Ответ 2

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

Подробнее см. этот пост.