Play 框架作为 SBT 非根模块

2024-03-22

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

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

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)

}

Running sbt clean package似乎适合common, client1, and client2模块但是webapp模块未打包到我可以运行的程度webapp/target/start.

我可以做什么来实现这一点作为具有正确输出的单个构建?


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

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Play 框架作为 SBT 非根模块 的相关文章

随机推荐