Play Framework as SBT Non-Root Module

Jak*_*ton 12 scala sbt playframework playframework-2.0

我正在尝试使用SBT开发Play 2.0 Web应用程序以及核心Java模块和其他Java客户端.是否可以以Play应用程序仍然正确构建的方式进行配置?

我以前开发过一个小型的一次性Play 2.0应用程序,但我没有直接使用SBT的经验.到目前为止,我已经提出了以下目录结构和project/Build.scala文件.

root/
 |---common/
 |
 |---client1/
 |---client2/
 |
 |---webapp/
 |    |---app/
 |    |---conf/
 |    |---public/
 |
 |---project/
Run Code Online (Sandbox Code Playgroud)

.

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)

}
Run Code Online (Sandbox Code Playgroud)

跑步sbt clean package似乎是适当的工作common,client1client2模块,但webapp模块不打包到一个地步,我可以运行webapp/target/start.

作为具有适当输出的单个构建,我能做些什么来实现?

Jak*_*ton 7

这里的问题是,仅仅运行package目标不足以为您生成启动脚本.它将组装完整的包Web应用程序,但没有一种启动它的方法.

我的目标是部署到Heroku,它可以方便地提供一个插件,为您生成这个启动脚本.默认情况下,使用Play 2.0 Web应用程序添加插件包含的存储库,因此您所要做的就是修改用于构建的命令,sbt clean compile stage您将start在该webapp/target/文件夹中找到一个脚本.