2011-03-15 56 views
7

我想知道,如果有可能,并且有扩展grails插件功能的通用方法。扩展Grails插件的功能

我最近安装了可评论的插件,但需要对其进行一些修改。由于代码不是与项目一起存储(但在用户目录中),所以如果我修改它,插件更新后(或安装其他某台计算机上的项目),这些更改将丢失。

有人有什么想法吗?

感谢, 萨科

回答

9

如果你想覆盖的工件(如域类)创建一个与您的项目相同的名称。插件是与应用程序类分开编译的,它们的工件首先被注册,所以如果主应用程序中存在工件,它将替换插件的工件。只要确保为域类使用相同的包,但这对控制器或服务不是必需的。

4

如果您想完全修改插件,您可以尝试更改并重新编译该插件,并将其构建到具有不同名称的zip文件中。

然后您可以从源代码安装定制插件。您可以参考question here.

0

在一个项目中,我们需要一个允许的电子邮件地址列表,允许应用程序发送邮件到一个环境(QA),因此项目中涉及的各方可以测试应用程序没有任何邮件被发送给我们的客户客户(最终客户)的风险。

这是太大的作业来改变所有的代码块是做的邮件让我实现了自定义扩展为一个核心类邮件的插件(grails.plugin.mail.MailMessageBuilder)的那把列表允许电子邮件地址从应用程序的配置和overrode解决地址的方法发送邮件(toDestinationAddresses)之前。然后,我替换了一个工厂方法(该插件),它生成MailMessageBuilders,以便通过Grails引导中的Groovy metaClass生成我的自定义构建器。

这是一个干净的,非侵入性的修复,它很好地工作。