Groovy Intellij是否会自动更新您的课程';您是否在调试模式下对进行了更改?

Groovy Intellij是否会自动更新您的课程';您是否在调试模式下对进行了更改?,groovy,intellij-idea,Groovy,Intellij Idea,我知道,对于css、html和gsp文件,您只需刷新浏览器,无需重新构建应用程序即可查看更新的更改。如果您在调试模式下单步执行代码,并对groovy或类文件进行更改,您是否必须重建应用程序才能看到更改 IntelliJ不会自动更新正在运行的应用程序中的类。您需要手动编译它们(这不是一个完整的项目重建-IntelliJ将以增量方式编译项目,并只编译更改的类和依赖于它们的代码),然后IntelliJ将为您重新加载更改(如果Java热交换不支持您所做的更改,则可能会失败) 请注意,某些Web框架可能能

我知道,对于css、html和gsp文件,您只需刷新浏览器,无需重新构建应用程序即可查看更新的更改。如果您在调试模式下单步执行代码,并对groovy或类文件进行更改,您是否必须重建应用程序才能看到更改

IntelliJ不会自动更新正在运行的应用程序中的类。您需要手动编译它们(这不是一个完整的项目重建-IntelliJ将以增量方式编译项目,并只编译更改的类和依赖于它们的代码),然后IntelliJ将为您重新加载更改(如果Java热交换不支持您所做的更改,则可能会失败)


请注意,某些Web框架可能能够自动重新加载更改的类,而与您是否从IntelliJ运行代码无关。

假设您在断点处停止,并希望编辑所使用方法的源代码。进行编辑,保存,然后
run>重新加载更改的类
。然后,在调试器控件中,
Drop Frame
。如果不删除框架,就不会执行新重新编译的方法体

默认情况下,这两个命令没有键绑定,但您可以通过设置(ctrl+alt+s)中的
KeyMap
创建它们。更好的是,您可以制作一个脚本来为您执行这两个命令


我希望它更简单、更自动化,就像在eclipse中一样,但是哦,好吧。

这在很大程度上取决于你的应用程序是如何运行的。但通常手动触发的重建就可以做到这一点。然而,这种基本的热交换是非常有限的(通常只有方法体可以轻松地交换),您最终会不时地重新启动。spring-loaded(grail的默认设置)或其他工具可能会有所帮助。除此之外,了解你如何运行你的应用程序以及它的全部内容也会有所帮助。“groovy应用程序”可能意味着很多,它是一个相当复杂的业务应用程序;甚至在一般情况下,对于一个简单的Web应用程序,我很想知道您是否需要从头开始重新启动整个应用程序,或者如果有一种方法,在调试过程中(如果您运行在调试模式下),ITELLIJ可以检测到您的更改(通过代码),那么您需要做什么,以便不必从头开始重建?我一直在单步执行代码,进行更改,但随后我必须停止调试器,并重新启动它,这会触发完整的构建,您无需执行任何特殊操作;每次调用Build | Make Project时,IntelliJ都会执行增量构建。此外,您不需要停止调试器;调试时只需执行Make,IntelliJ将提示您重新加载更改的类。运行->重新加载更改的类