将游戏项目拆分成多个部分

Split play project into parts

我有一些 play 框架 web 项目,它由 3 个逻辑部分组成:一个 userweb ,一个管理区域和 akka actors。

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

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

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

root
  - admin
  - UI
  - DB

您可以在构建 root.

时单独或一次构建每个子项目

要生成单独的 JAR,您可以使用 sbt-assembly 插件或 onejar,或任何其他 jar 打包器。每个 JAR 将包含一个 "Main" class(使用 main 方法),如果您在常规 Servlet 容器上 运行 播放子项目除外。如果您 运行 在嵌入式 Jetty 上玩,它也可以有 main

现在一些链接:

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

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