Intellij IDEA 修改代码后自动编译更新
问题描述:
Intellij IDEA 调试修改时,改动页面和 java 文件后,无法立刻看到变化,需要手动重启服务。
问题原因:
在 IDEA tomcat 中 server 的配置里,找到 on frame deactivation 条目,选择 update classes and resources。
由于服务器添加的 Artifact 类型问题,有的项目可能没有 update classes and resources 这个选项,只有 Hot Swap classes。
原因:一个 module 对应两种 Artifact,一种是 war,一种是 war explored。
- war 是以 war 包形式发布,这种形式下 on frame deactivation 配置没有 update classes and resources 这个选项。
- war explored 是发布文件目录,选择这种形式, on frame deactivation 中就出现 update classes and resources 这个选项。
解决方法:
在 idea tomcat 中 server 的配置里,找到 on frame deactivation 条目,选择 update classes and resources。
没有 update classes and resources 选项的话,先在 Deployment 菜单下修改 Artifact 的类型为 war explored,再回 Server 菜单选择 update classes and resources。
另外有个配置 on update action,就是手动操作的时候采取什么动作,可以选择重启服务器,也可以像上面一样更新类和资源文件。
注意:如果更新的是配置文件等静态资源文件,最好选择重启服务器。