Grails项目之间的代码重用 - 保持干燥

kno*_*orv 6 grails

Grails框架有许多构造/功能,允许在项目中遵守DRY原则("不要重复自己").也就是说:在特定项目中,您很少需要重复相同的设置或代码块.到现在为止还挺好.

然而,我越来越多地使用Grails,我发现我更多地重复代码不是在同一个项目中而是在项目之间.那就是项目A有控制器,GSP:s和与项目B重叠的图像.这是一个维护噩梦,因为项目A中的错误修复也必须在项目B等中修复.

我想通过不在我的项目之间复制代码来将DRY提升到新的水平.

我的问题:你如何在你自己的内部Grails项目中解决这个问题(违反"项目间干")?

请非常具体/具体.如果可能,请尝试在实践中包含有关如何解决它的特定代码示例.

lee*_*tts 7

编写自定义插件是最好的方法.您无需将其发布到公共存储库,因为您可以在自己的网络中的某个位置使用私有存储库.

我还没有足够的重复代码来提取插件(在我的项目中重复的大多数代码似乎被各种公共插件所覆盖),但插件可以像一些常见的域类或服务一样简单.


Col*_*ton 5

我同意Lee,使用通用/共享插件可能是最好的方法.在我工作的一个地方,出于这个原因,我们有很多内部插件.

最常见的模式是将常用域对象放入自己的插件中.这适用于域类或服务.我们最终没有将控制器,视图和静态资源重构为插件,但同样的原则应该适用.

长话短说:重复使用Grails工件=使用插件.