常见的后端Grails应用程序

Fra*_*See 2 grails module

我有一个Grails Application AppA.我计划创建一个新的Grails应用程序AppB,其中AppB实际上使用相同的AppA服务和模型.

我应该怎么做?

  1. 提取Grails应用程序AppC,它将具有公共服务并将该服务公开为远程/ Web /休息服务?
  2. 提取一个Groovy项目ModC,它将是一个包含公共服务和模型的jar,并且AppA和AppB依赖于ModC?
  3. 每次只是git clone和cherry-pick?
  4. 其他建议?

请注意,AppA也有来自表示层(控制器和视图)的一些延迟加载的关系调用(即entity1.entity2.entity3.propName)和GORM调用(即Entity1.get(1L)).虽然我可以将其中的一些推回到服务中,但我担心重构努力让视图中的关系调用保持不变(即我需要急于加载一些关联,或者创建数据传输对象)

Jan*_*olm 5

Grails分享常见功能,实用程序和诸如此类的方法是制作一个封装它们并将其安装到两个项目的插件.

一个插件可以包含任何你可以放在常规Grails应用程序中的东西 - 即模型,服务,视图,控制器,配置文件,web-app下的资源等.

然后,您可以将其发布到内部svn存储库或只使用它 package-plugin

编辑:

在不断更新代码时执行此操作的一种方法是将其作为内联插件.因此,从application.properties中删除插件并添加:

grails.plugin.location."name-of-plugin" = "/path/to/plugin/dir" // or "../plugin/"
Run Code Online (Sandbox Code Playgroud)

这消除了一直重新安装插件的必要性.但这仅适用于开发时间.