在两个播放框架应用程序之间共享模型的最佳方法是什么?

时间:2016-01-06 14:05:48

标签: java mysql playframework ebean

我有两个(可能更多)应用程序用Play 2.4.x编写。 我想开始将不同的功能委派给不同的应用程序并将它们托管在不同的服务器上。现在,我的问题是大多数这些组件都需要共享相同的模型。 我正在使用Ebean和MySQL。

有一种简单的方法吗?我用谷歌搜索了如何在Play中创建模块,但大多数结果都是参考Play 1.x或者没有很好的文档记录。

有没有办法在外部依赖项中对模型进行分组,或者有更好的方法吗?

谢谢!

1 个答案:

答案 0 :(得分:2)

有!下面将向您展示如何创建子项目,将其打包,发布到本地.ivy存储库,并将其导入父项目。

首先创建子项目

  • 创建一个新的java最小java种子:
  

$ activator new

  • 在特定包名称下为此新项目添加一些常用代码,例如:
  

项目根/ SRC / JAVA /主/ COM / myCompany的/公

  • 编辑build.sbt

    name := """mycompany-commons"""
    organization := "com.mycompany.commons"
    version := "1.0"
    scalaVersion := "2.11.6"
    libraryDependencies ++= Seq()
    
  • 在项目根目录中,在控制台中创建包(jar),运行:

  

$ activator package

此时,您应该有一个可以添加到本地托管的软件包存储库的jar。对于此示例,我将显示您必须将其添加到本地.ivy存储库

发布和使用子项目

仍然在子项目目录中:

  

$ activator publish-local

现在您已将lib发布到本地ivy存储库,将新依赖项添加到父项目

  • 在build.sbt中,将以下内容添加到libraryDependencies:

    "com.mycompany.commons" % "mycompany-commons_2.11" % "1.0"

  • 重建您的父项目,它应该能够使用您在上面创建的包中的代码

了解详情:

http://www.scala-sbt.org/0.13/tutorial/Library-Dependencies.html https://www.playframework.com/documentation/2.4.x/SBTSubProjects