Plugins 扩展Grails插件的功能

Plugins 扩展Grails插件的功能,plugins,grails,extending,Plugins,Grails,Extending,我想知道,是否有可能,是否有一种通用的方法来扩展grails插件的功能 我最近安装了可评论插件,但需要对其进行一些修改。由于如果我修改代码,代码不会与项目一起存储(而是存储在用户目录中),因此在更新插件(或安装其他机器上的项目)后,这些更改将丢失 有人知道吗 谢谢, Nicolas如果要覆盖工件(例如域类),请在项目中创建一个同名工件。插件与应用程序类分开编译,它们的工件首先注册,因此如果主应用程序中有工件,它将替换插件的工件。只需确保对域类使用相同的包,尽管控制器或服务不需要此包。如果要完全修

我想知道,是否有可能,是否有一种通用的方法来扩展grails插件的功能

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

有人知道吗

谢谢,
Nicolas

如果要覆盖工件(例如域类),请在项目中创建一个同名工件。插件与应用程序类分开编译,它们的工件首先注册,因此如果主应用程序中有工件,它将替换插件的工件。只需确保对域类使用相同的包,尽管控制器或服务不需要此包。

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


然后可以从源代码安装自定义插件。您可以在一个项目中参考

,我们需要一个允许应用程序向其发送邮件的允许电子邮件地址列表,用于一个环境(QA),以便项目中的各个不同参与方可以在不向我们的客户(最终客户)发送任何邮件的情况下测试应用程序

这项工作太大,无法更改所有发送邮件的代码块,因此我为邮件插件的核心类(grails.plugin.mail.MailMessageBuilder)实现了一个自定义扩展程序,该扩展程序从应用程序的配置中获取允许的电子邮件地址列表,并重写了一个在发送邮件之前解析地址的方法(ToDestinationAddresss)。然后,我替换了(插件的)工厂方法,该方法生成MailMessageBuilders,因此它通过Grails引导中的Groovy元类生成了我的自定义生成器

这是一个干净的、非侵入性的修复,它运行得很好