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

Play Framework как SBT Non-Root Module

Я пытаюсь создать веб-приложение 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.

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

4b9b3361

Ответ 1

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

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