如何防止Grails自动重新加载某些文件?

如何防止Grails自动重新加载某些文件?,grails,emacs,Grails,Emacs,使用Emacs编辑Grails源文件时,Emacs将临时与源文件一起创建。例如,如果编辑com/example/MyController,您可能会看到: rob@machine:~/app$ ls -la grails-app/controllers/com/example/ total 28 drwxrwxr-x 3 rob rob 4096 2011-12-03 13:38 .. -rw-rw-r-- 1 rob rob 3883 2012-01-03 13:57 MyController.

使用Emacs编辑Grails源文件时,Emacs将临时与源文件一起创建。例如,如果编辑
com/example/MyController
,您可能会看到:

rob@machine:~/app$ ls -la grails-app/controllers/com/example/
total 28
drwxrwxr-x 3 rob rob 4096 2011-12-03 13:38 ..
-rw-rw-r-- 1 rob rob 3883 2012-01-03 13:57 MyController.groovy
lrwxrwxrwx 1 rob rob   26 2012-01-04 09:32 .#MyController.groovy -> rob@machine.2136:1324674574
当在
运行应用程序
期间创建此文件时,Grails会注意到它并尝试编译它,通常会在
运行应用程序
控制台日志中产生编译错误:

| Error 2012-01-04 09:32:51,207 [Thread-38] ERROR plugins.AbstractGrailsPluginManager  - Plugin [controllers:2.0.0] could not reload changes to file [/home/rob/app/grails-app/controllers/com/example/.#MyController.groovy]: Dynamic method is<Artefact>Class(artefactClass) requires a single Class parameter
Message: Dynamic method is<Artefact>Class(artefactClass) requires a single Class parameter
   Line | Method
->> 629 | doCall in SpringSecurityCoreGrailsPlugin$_closure5
| Error 2012-01-04 09:32:51207[Thread-38]Error plugins.AbstractGrailsPluginManager-Plugin[controllers:2.0.0]无法重新加载对文件[/home/rob/app/grails app/controllers/com/example/.#MyController.groovy]的更改:动态方法isClass(artefactClass)需要一个类参数
消息:动态方法isClass(artefactClass)需要一个类参数
直线法
->>629 | SpringSecurityCoreGrailsPlugin$中的doCall\u closure5
这可能只发生在使用SpringSecurityCore插件时,但是我没有在没有安装插件的情况下测试它

我相信这只发生在Grails2.0中;我从未在1.3.7或更早版本中观察到它

运行app
期间自动重新编译时,有没有办法让Grails忽略这些文件?对于控制哪些文件可以重新加载,哪些文件不可以重新加载,一个通用的答案是理想的


我也可以接受“不,这不可能”的权威回答。我知道通过配置可能无法实现这一点,在这种情况下,我可能会打开JIRA增强功能。

我还没有尝试过该修补程序,但看起来Graeme最近解决了这个问题:

第224行不包括以点开头的文件(即emacs写锁)


另请参见:这表明这可能出现在2.0.1中

我想知道如何控制它查找和不查找的文件(而不是如何排除它们)。我知道在一个插件项目中有一个watchedResources列表,可以用来定义哪些资源需要监视更改,但我不知道如何在非插件的grails项目中配置它。@JarredOlson-我同意-我已经更新了我的问题,要求得到一个更一般的答案(如果有的话)。我将冒一个险说,可能没有办法通过配置来实现这一点,这个问题可能最终成为grails功能请求。这不是非常紧急(对我来说,无论如何);这些错误其实并没有带来任何影响,它们只是看到在控制台上运行时很烦人。我同意,但我非常喜欢脚手架,当你安装模板并编辑模板时,这些更改不会被拾取并自动重新加载,所以我浪费了很多时间停止并重新启动服务器。@JarredOlson-是的,虽然我不知道这是不是一个微不足道的改变。我怀疑(如果可以控制自动重新加载文件的列表)是否可以添加模板,让Grails神奇地知道所有内容都应该重新构建。为此,可能必须对Grails进行核心更改。可能是另一个增强请求?看了一下补丁,它看起来确实会修复我看到的emacs锁文件的重新加载。我可能会等待它成为正式版本来测试它(并随后接受这个答案)。谢谢你的提醒!