【问题标题】:Split play project into parts将游戏项目拆分为多个部分
【发布时间】:2015-08-04 02:30:53
【问题描述】:

我有一些游戏框架网络项目,它由 3 个逻辑部分组成:一个 userweb 、一个管理区域和 akka 演员。

它正在慢慢成长,我需要为每个小的变化重新启动生产服务器。这就是为什么我决定将项目分成 3 个部分。管理区域与 DB 和 actor 进行通信,UI 和 actor 也与 Web 部件和 DB 进行通信。 并且每个部分都可以或多或少地无痛地重新启动,而无需重新启动另一个。但我不想拆分项目,只从一个代码库生成不同的 JARS。可能吗?

另外一个问题是如何在 Play 框架环境中独立启动 akka Actor?

【问题讨论】:

  • 如果我理解正确的话,你可以有 3 个不同的可执行 jar,每个 jar 在单独的 VM 上运行并使用演员(远程处理)在服务之间进行通信。同时,您希望将其全部维护在带有子项目的单个逻辑项目下。
  • 是的。现在我正在使用 ./activator stage 命令生成一个 exec jar,然后运行这个 jar

标签: scala akka playframework-2.3


【解决方案1】:

如果您想拥有 3 个 JAR,每个 JAR 分别在不同的 JVM 上运行,并且仍然有一个 SBT 项目,您可以这样做... SBT中的项目结构:

root
  - admin
  - UI
  - DB

您可以在构建root 时单独构建每个子项目,也可以一次构建所有子项目。

要生成单独的 JAR,您可以使用 sbt-assembly 插件或 onejar,或任何其他 jar 打包程序。每个 JAR 都将包含一个“Main”类(带有main 方法),如果您在常规 Servlet 容器上运行它,则 Play 子项目除外。如果你在嵌入式 Jetty 上运行 play,它也可以有 main

现在是一些链接:

  • SBT multi-project 设置
  • Akka remoting
  • SBT Assembly(JAR 打包器)
  • Sample 远程处理与您的情况相匹配的 Akka 项目:客户端 - 服务器,其中客户端是一个子项目,服务器是另一个。它可能不是最好的参考,但您可以从那里复制很多结构。

首先,我会将您的构建从 build.sbt 迁移到“Build.scala”。将 Play 项目作为 SBT 子项目移动并使其构建。当这个工作开始分裂它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-05-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-16
    相关资源
    最近更新 更多