2015-05-22 1 views
1

У меня есть веб-проект для игрового каркаса, который состоит из трех логических частей: пользовательского сайта, админ-зоны и акк-актеров.Разделить проект воспроизведения на части

Это медленно растет, и мне нужно перезапустить производственный сервер для каждого небольшого изменения. Вот почему я решил разделить проект на 3 части. Область администрирования связывается с БД и субъектами, так что пользовательский интерфейс, участники взаимодействуют с веб-частью и БД. И каждая часть может быть более или менее безболезненно перезапущена без перезапуска другой. Но я не хочу разделить проекты и производить только разные JARS из одной базы кода. Является ли это возможным?

И еще один вопрос: как запустить аккеры в автономном режиме в игровой среде?

+1

Если вы правильно поняли, что у вас все в порядке, у вас есть 3 разных исполняемых баночки, каждый из которых работает на отдельной виртуальной машине и использует участников (удаленных) для связи между службами. В то же время вы хотите сохранить все это под единым логическим проектом с подпроектами. –

+0

Да. Теперь я использую команду stage./activator, которая создает один экземпляр exec, а затем запускает эту банку – Oleg

ответ

4

Если вы хотите иметь 3 JARs запускать каждый в отдельности на разных JVM и до сих пор есть один проект SBT вы можете сделать это таким образом ... Структура проекта в SBT:

root 
    - admin 
    - UI 
    - DB 

Вы можете создавать каждый подпроект отдельно или все сразу, когда вы строите root.

Для создания отдельных JAR-модулей вы можете использовать плагин sbt-assembly или onejar или любой другой упаковщик jar. Каждый JAR будет содержать класс «Основной» (с методом main), за исключением подпроекта Play, если вы запускаете его на обычных контейнерах сервлетов. Если вы запустите игру на встроенном Jetty, она также может иметь main.

Теперь некоторые ссылки:

  • SBT multi-project установка
  • Akka remoting
  • SBT Assembly (Архиватор)
  • Sample ремоутинга Akka проекта, который соответствует вашему случаю: клиент - сервер, где клиент один подпроект и сервер - другое. Это может быть не самая лучшая ссылка, но вы можете скопировать структуру партии оттуда.

Чтобы начать работу, я смогу перенести вашу сборку с build.sbt на 'Build.scala`. Переместите Play Project в качестве подпроекта SBT и создайте его. Когда это работает, начните раскалывать его.