有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Play框架项目组合

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

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

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

我目前的解决方案是创建核心模块,并将其作为“项目”播放应用程序中的依赖项提供。尽管这种方法部分有效,但也有一些主要的缺点:

  1. 若在模块中添加管线文件,它们将替代项目管线文件
  2. 您不能在核心模块中放置视图,因为由于图1的原因,您无法访问公共资源
  3. 由于缺点n.1和2,您不能将控制器放置在核心模块中,因为您不能指定要渲染的视图
  4. 模块分发中不包括静态资产(公共目录)

我被迫将公共模板复制到这两个项目中,我实际上无法编写公共控制器,这让人非常恼火

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


共 (1) 个答案

  1. # 1 楼答案

    我认为您不应该将角色核心项目添加为其他两个项目的依赖项。 你可以把核心项目分成核心类和核心资源。 play框架中的模板和视图都是编译类,因此您可以将它们完美地打包到jar中。您创建的模板将与核心类一起打包(或者您也可以分解它们)。您可以将这些JAR发布到artifactory或nexus等依赖项应用程序中,并导入其他项目。对于资源,您可以像webjars那样打包它们。因此,您可以从其他项目的任何其他视图访问它们