Play Framework как SBT Non-Root Module - PullRequest
12 голосов
/ 31 марта 2012

Я пытаюсь разработать веб-приложение Play 2.0 вместе с основным модулем Java и другими клиентами Java, используя SBT.Можно ли настроить это таким образом, чтобы приложение Play по-прежнему создавалось правильно?

Ранее я разработал небольшое одноразовое приложение Play 2.0, но у меня нет опыта работы с SBT напрямую.До сих пор я придумал следующую структуру каталогов и файл project/Build.scala.

root/
 |---common/
 |
 |---client1/
 |---client2/
 |
 |---webapp/
 |    |---app/
 |    |---conf/
 |    |---public/
 |
 |---project/

.

object ApplicationBuild extends Build {

    val appVersion      = "1.0-SNAPSHOT"

    val appDependencies = Seq(
      // Add your project dependencies here,
    )

    val common  = Project("hi-common", file("common"))

    val client1 = Project("hi-client1", file("client1")).dependsOn(common)

    val client2 = Project("hi-client2", file("client2")).dependsOn(common)

    val webapp = PlayProject("hi-webapp", appVersion, appDependencies, path = file("webapp"),  mainLang = JAVA).settings(
        // Add your own project settings here      
    ).dependsOn(common)

    val root = Project("hi", file(".")).aggregate(client1, client2, webapp)

}

Запуск sbt clean package, кажется, работает надлежащим образом для common,Модули client1 и client2, но модуль webapp не упакован до такой степени, что я могу запустить webapp/target/start.

Что я могу сделать, чтобы добиться этого как одной сборки с правильным выводом?

1 Ответ

7 голосов
/ 04 апреля 2012

Проблема в том, что простого запуска цели package недостаточно, чтобы сгенерировать стартовый скрипт для вас. Он соберет полностью пакетное веб-приложение, но без единого средства его запуска.

Моей целью было развертывание в Heroku, который удобно предоставил плагин, который сгенерирует этот стартовый скрипт для вас. Хранилище для включения плагина по умолчанию добавляется в веб-приложение Play 2.0, поэтому все, что вам нужно сделать, это изменить команды, которые вы используете для сборки, на sbt clean compile stage, и вы найдете скрипт start в webapp/target/ папка.

...