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