【问题标题】:Play Framework as SBT Non-Root ModulePlay Framework 作为 SBT 非根模块
【发布时间】:2012-04-14 19:19:55
【问题描述】:

我正在尝试开发一个 Play 2.0 Web 应用程序以及一个核心 Java 模块和其他使用 SBT 的 Java 客户端。是否可以以仍然正确构建 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 似乎适用于commonclient1client2 模块,但webapp 模块未打包到可以运行webapp/target/start 的程度。

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

【问题讨论】:

  • 请分配赏金,否则一半将丢失:)
  • 它不会让我。我相信当您回答自己的问题时,其他人必须这样做。

标签: scala playframework sbt playframework-2.0


【解决方案1】:

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

我的目标是部署到 Heroku,它方便地提供了一个插件,可以为你生成这个启动脚本。默认情况下,插件包含的存储库与 Play 2.0 Web 应用程序一起添加,因此您只需将用于构建的命令修改为 sbt clean compile stage,您将在 @987654324 中找到 start 脚本@文件夹。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-10-08
    • 1970-01-01
    • 2020-03-24
    • 2017-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-15
    相关资源
    最近更新 更多