2017-02-20 57 views
0

在grails 2及更早的版本中,插件將源代碼安裝到了.grails/<version>/projects/<projectName>/plugins/etc,這使得調試插件的安裝變得非常容易,無需檢出並加載完整源代碼......找到可能熱插拔的問題。無需安裝本地運行插件。grails 3項目插件源代碼?

在grails 3中,這似乎失蹤了...或者我只是錯過了一些東西?有沒有在我的項目中的某處我可以直接修改插件源而不檢出插件,編譯它然後在本地安裝它?

+0

http://stackoverflow.com/questions/30623499/grails-3-0-adding-an-inline-plugin http://stackoverflow.com/questions/34470356/running-a-grails-3-project-帶插件的插件 – Vahid

回答

1

是的,你失去了一些東西,而重要的:)

的Grails 2插件是作爲ZIP文件分發,包括源代碼,但Grails的插件3+分佈與編譯成類的代碼的JAR文件。與以前的方法相比,這有許多好處,最大的優點是不能再直接編輯源代碼(這是改變插件工作方式的最糟糕方式)。

你應該做的,而不是(在所有版本的Grails)是利用應用程序和已安裝的插件之間的編譯/負載/分辨率等級 - 插件加載,然後再應用。這使得你可以通過創建一個文件(Groovy/Java/GSP /等)來替代插件中的幾乎任何東西,這些文件在應用代碼中具有相同的名稱和相同的相對位置,並且它會自動覆蓋插件的文件或類。例如。重寫插件的com.foo.BarController控制器,在應用程序中手動創建grails-app/controllers/com/foo/BarController.groovy(通過複製原始源代碼並修改它)。

+0

太棒了,我完全不知道這個選項。非常感謝! – Trebla

+0

爲了澄清,我們僅使用此方法來調試代碼,以便在將問題轉換爲插件源之前解決問題,而不是作爲覆蓋插件功能的方法。 – Trebla