gpt4 book ai didi

java - Play Framework项目组成

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:02:00 25 4
gpt4 key购买 nike

我有 2 个项目,它们是使用 PlayFramework 2.4 开发的。虽然它们在概念上是完全独立的,但它们有一些共同的特征,比如进化管理(Liquibase)、CRUD 管理机制、通知(电子邮件、短信)机制等。因此,决定将每个项目拆分为 2 个模块:common核心”模块,它包含所有描述的逻辑,以及“项目”模块,它包含项目特定的服务、模板、 View 。

在 Play Framework 中实现这一点的推荐方法是“子项目”概念。但这显然不是一种选择,至少有两个原因:

  1. 项目是由不同的团队开发的,这就是为什么它们不能位于一个目录结构中的原因
  2. 这 3 个模块(“核心”和 2 个“项目”模块)必须在单独的 VCS 存储库 (Mercurial) 中进行版本控制

我目前的解决方案是创建核心模块,并将其作为“项目”Play 应用程序的依赖项提供。尽管这种方法部分奏效,但也存在重大缺点:

  1. 如果您在模块中添加路由文件,它们将覆盖项目路由文件
  2. 您不能将 View 放在核心模块中,因为由于图 1,您无法访问公共(public) Assets
  3. 由于缺点 n.1 和 2,您不能将 Controller 放在核心模块中,因为您无法指定要呈现的 View
  4. 静态 Assets (公共(public)目录)不包含在模块分发中

我被迫将通用模板复制到两个项目中,我实际上不能编写通用 Controller ,这太烦人了

感谢任何帮助。也许这可以通过核心模块的某种高度定制的构建和发布过程来实现?

最佳答案

我认为您不应该将角色核心项目添加为其他 2 个项目的依赖项。您可以将核心项目分解为核心类和核心资源。play framework中的模板和 View 都是编译类,所以你可以完美地打包在一个jar中。您创建的模板将与核心类一起打包(或者您也可以破坏它们)。您可以将此 jar 发布到依赖项应用程序(如 artifactory 或 nexus)中,然后导入到其他项目中。对于资源,您可以将它们打包为 webjars做。因此,您可以从其他项目的任何其他 View 访问它们。

关于java - Play Framework项目组成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31103516/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com