Развертывание простого приложения Scala (без веб-приложения), управляемого с помощью Maven - PullRequest
1 голос
/ 13 января 2010

Я новичок в стеке Java / Scala в целом. Пока у меня есть относительно простая установка приложения scala (не webapp) и сборка с maven2, и я хотел бы иметь возможность развернуть вывод на одном или нескольких рабочих серверах (ubuntu на EC2, но это не должно иметь значения) Я предполагаю)?

Мои основные вопросы: 1) Как лучше всего установить все зависимые (сторонние) файлы jar, установленные на рабочем сервере? maven позаботится об их установке на моем компьютере для разработки, как это работает в prod? 2) Я могу запустить свое приложение с помощью mvn scala: run, но как правильно запустить приложение в производстве? 3) Как мне справиться с последующим развертыванием?

Любые указатели / ресурсы будут оценены! Большое спасибо заранее за помощь нубу! :)

Ответы [ 2 ]

2 голосов
/ 13 января 2010

Я склонен использовать плагин Maven App Assembler для упаковки зависимостей, собственного кода и создания сценариев запуска. Основное использование описано в превосходной книге Maven от Sonatype.

Для большей гибкости он может генерировать сценарии Java Service Wrapper, которые позволяют запускать приложение как приложение командной строки, службу Windows или демон Unix.

Этот подход не специфичен для приложений Scala. Вам просто нужно знать основной класс вашего приложения, например, sample.Main $ в коде ниже.

package sample

object Main {
  def main(args: Array[String]) = println("hello world")
}
1 голос
/ 13 января 2010

ответ retronym выглядит как лучшее решение, но если вы просто хотите что-то действительно простое, вы можете использовать плагин Maven assembly . Все, что вы делаете, это добавляете его как плагин к вам, pom.xml, затем выполняете mvn assembly:assembly, и он создаст вам флягу со всеми вашими зависимостями (включая scala lib) без изменений. Таким образом, вы можете просто запустить ваше приложение с java -cp my.jar MyMainClass.

...