2011-03-15 70 views
7

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

我最近安裝了可評論的插件,但需要對其進行一些修改。由於代碼不是與項目一起存儲(但在用戶目錄中),所以如果我修改它,插件更新後(或安裝其他某臺計算機上的項目),這些更改將丟失。

有人有什麼想法嗎?

感謝, 薩科

回答

9

如果你想覆蓋的工件(如域類)創建一個與您的項目相同的名稱。插件是與應用程序類分開編譯的,它們的工件首先被註冊,所以如果主應用程序中存在工件,它將替換插件的工件。只要確保爲域類使用相同的包,但這對控制器或服務不是必需的。

4

如果您想完全修改插件,您可以嘗試更改並重新編譯該插件,並將其構建到具有不同名稱的zip文件中。

然後您可以從源代碼安裝定製插件。您可以參考question here.

0

在一個項目中,我們需要一個允許的電子郵件地址列表,允許應用程序發送郵件到一個環境(QA),因此項目中涉及的各方可以測試應用程序沒有任何郵件被髮送給我們的客戶客戶(最終客戶)的風險。

這是太大的作業來改變所有的代碼塊是做的郵件讓我實現了自定義擴展爲一個核心類郵件的插件(grails.plugin.mail.MailMessageBuilder)的那把列表允許電子郵件地址從應用程序的配置和overrode解決地址的方法發送郵件(toDestinationAddresses)之前。然後,我替換了一個工廠方法(該插件),它生成MailMessageBuilders,以便通過Grails引導中的Groovy metaClass生成我的自定義構建器。

這是一個乾淨的,非侵入性的修復,它很好地工作。