我很好奇没有人知道Grails或Play等框架如何检测代码中的变化,并自动触发重新编译而无需重新启动应用程序服务器?有没有特定于Groovy的编译器或其动态特性的东西,使它容易发生?Grails或Play如何检测更改和热重载类?
对于背景,我在构建过程中有一个自定义的代码生成阶段,我希望能够具有类似的编辑和刷新功能。
预先感谢任何指针,即使我必须筛选代码以获取更大的图片。
编辑:我应该澄清一下,我不打算在servlet容器中的任何应用程序中完成这些操作,以致无法构建Grails插件。即,我正在使用Groovy,但不使用Grails。
EDIT2:这听起来像玩有一个特定的DEV模式,这使得这个炎热的重装:http://www.playframework.org/documentation/1.1.1/main#lifecycle
据我所知,JRebel的执行通过类加载器精心类的版本,但我假设Web框架Grails的一样或游戏没有把它带到那个水平。
Luke Daley有一篇关于如何为Groovy类进行热重载的精彩文章。它可能对你有用:http://ldaley.com/post/653190105/putting-the-artefact-api-to-work-in-your-grails-app – Dana 2011-03-07 23:54:36
这里有一些关于JRebel如何做到这一点的迷人细节一种通用的方式。我假设Grails不是那么复杂! http://www.zeroturnaround.com/blog/reloading_java_classes_401_hotswap_jrebel/ – mckamey 2011-03-08 02:54:57
我将@ Codemwnci的答案标记为解决方案,但如果有人对Grails有深入了解,我仍然对此感兴趣。谢谢! – mckamey 2011-03-09 17:45:16