在Grails 2及更早版本中,插件将其源代码安装到.grails/<version>/projects/<projectName>/plugins/etc
,这样就可以轻松调试已安装的插件,而无需检出并加载完整的源代码......找出可能出现问题的地方热部署。无需在本地安装运行插件。
在Grails 3中,这似乎缺失了......或者我可能只是遗漏了什么?在我的项目中有什么地方我可以直接修改插件源而不检查插件,编译它然后在本地安装它吗?
答案 0 :(得分:2)
是的,你错过了一些相当重要的事情:)
Grails 2插件作为ZIP文件分发,包括源代码,但Grails 3+插件作为JAR文件分发,代码编译成类。与早期的方法相比,这有许多好处,最大的好处是您不能再直接编辑源代码(这是更改插件工作方式的最糟糕方式)。
你应该做什么(在所有版本的Grails中)是利用应用程序和已安装插件之间的编译/加载/解析顺序 - 首先加载插件,然后加载应用程序。这允许您通过在应用程序代码中创建具有相同名称和相同位置的文件(Groovy / Java / GSP /等)来覆盖插件中的几乎任何内容,并且它将自动覆盖插件的文件或类。例如。要覆盖插件的com.foo.BarController控制器,请在您的应用中创建grails-app / controllers / com / foo / BarController.groovy(手动或通过复制原始源并对其进行修改)。