【问题标题】:What's the best way to share the model between two play framework application?在两个播放框架应用程序之间共享模型的最佳方式是什么?
【发布时间】:2016-01-06 14:05:47
【问题描述】:

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

有没有简单的方法可以做到这一点?我在 Google 上搜索了如何在 Play 中创建模块,但大多数结果都是指 Play 1.x 或者没有很好的文档记录。

有没有办法在外部依赖中打包模型,或者有更好的方法来做到这一点?

谢谢!

【问题讨论】:

    标签: java mysql playframework ebean


    【解决方案1】:

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

    先创建子项目

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

    $activator new

    • 在这个新项目中添加一些通用代码,使用特定的包名,例如:

    project-root/src/java/main/com/mycompany/commons

    • 编辑 build.sbt

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

    $activator 包

    此时您应该有一个可以添加到本地托管包存储库的 jar。对于这个例子,我将展示你必须将它添加到你的本地 .ivy 存储库


    发布和使用子项目

    虽然还在子项目目录中:

    $activator 本地发布

    现在您已将 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

    【讨论】:

    • 今天测试,听起来不错!谢谢,我会尽快评论/解决! ;)
    猜你喜欢
    • 2013-10-07
    • 2011-11-06
    • 1970-01-01
    • 1970-01-01
    • 2010-10-11
    • 2013-10-31
    • 2020-07-26
    • 2011-05-17
    • 1970-01-01
    相关资源
    最近更新 更多