我有一个标准的2.0.3 Grails应用程序,并且我执行了
grails install-templates
命令,它会将文件list.gsp、edit.gsp等放置在src/templates/scaffolding/目录中。当对这些文件进行更改时,它们不会自动重新加载。有没有办法让它们自动重新加载,这样我就不必每次更改时都停止/启动应用程序了?我尝试查看watchedResources,但那似乎与插件开发相关。
Controller.groovy
不会引起onChange
事件。文档建议对于.groovy
文件有特殊处理的watchedResources
:“如果被监视的资源指定为 Groovy 文件,则在更改时它将自动重新加载并传递到事件对象中的 onChange 闭包中”,我猜想由于Controller.groovy
不是通常意义上的 Groovy 文件(它不会被编译和重新加载),因此它不会触发事件。 - Ian RobertsController.groovy
之后再更改视图模板应该也会导致控制器重新加载(对视图的任何更改都会触发完整的重新生成)。但实际上并没有。在这种情况下,我怀疑生成的脚手架控制器确实已经被重新生成了,但由于重新生成的类与旧类具有相同的名称,并且 Grails 正在尝试在同一类加载器中编译它,因此类加载器会将旧的Class
对象返回给我们,而不是一个新的对象... - Ian Roberts