Ответ 1
Вот запись, которую я сделал на одном из способов сделать исполняемую банку с SBT:
http://janxspirit.blogspot.com/2011/01/create-executable-scala-jar-with-sbt.html
Ответ: Создание автономной банки с помощью 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. Возможно, мне нужно указать значение по умолчанию при создании пакета?
Вот запись, которую я сделал на одном из способов сделать исполняемую банку с SBT:
http://janxspirit.blogspot.com/2011/01/create-executable-scala-jar-with-sbt.html
sbt-assembly - это sbt-плагин для создания автономного баннера проекта Scala sbt со всеми его зависимостями.
Подробнее см. этот пост.