【发布时间】:2013-10-09 19:47:53
【问题描述】:
我有一个相当大的 Grails 应用程序,它有少量的控制器和视图,以及大量的服务。
我现在需要为具有自己的一组视图和控制器(控制器的工作方式存在一些细微差异)但具有完全相同的一组服务的同一站点构建一个“重新设计”版本。一种选择是通过自定义 Grails 插件将所有服务移动到某种公共位置,但我想知道是否还有其他方法。
我想做的是在控制器文件夹中有两个包,com.company.sitea 和 com.company.siteb,并带有一个环境变量,可以有效地选择使用其中的一个。类似地,两组不同的视图,每组都是根据这个环境变量选择的,但是有一个共享的 taglib。
我找不到任何明显的方法,是否有插件或标准方法(或类似方法)?想法是,我有一个代码库,我会构建一场战争,但战争会部署在两个不同的地方,每个地方都会为一个特殊的环境变量指定一个值。
【问题讨论】:
-
老实说,我会自己走插件路线。或者甚至将服务拉到他们自己的 grails 应用程序 (WAR) 中,并让控制器作为 web 服务与他们交谈。
-
是的,如果我们不能将它们全部放在一起,这就是我们要做的,但根据我的经验,拆分代码库半不必要地阻止重构并导致我做的锁步更改噩梦厌恶。这两个站点将共享大约 98% 的功能(不包括特定视图),将一个代码库变成三个代码库将是一种耻辱。
-
我也投票支持“通用”插件路线。因为你已经在制作插件了
标签: grails