IntelliJ IDEA:如何在执行Save All操作时更新应用
实现IntelliJ IDEA中Tomcat自动更新Web应用(媲美Netbeans效果)
当然可行!我日常开发时就这么配置,完全能达到和Netbeans一样的「保存即更新」流畅体验,下面一步步教你搞定:
1. 开启自动编译基础配置
首先得让IDEA在你保存文件时自动编译修改内容:
- 打开
File > Settings(Windows/Linux)或IntelliJ IDEA > Settings(Mac) - 定位到
Build, Execution, Deployment > Compiler - 勾选 Build project automatically 选项
- 如果你用的是IDEA 2020.1及以上版本,还需开启一个隐藏开关:按
Ctrl+Shift+A(Windows/Linux)或Cmd+Shift+A(Mac)唤起搜索框,输入Registry并打开,找到compiler.automake.allow.when.app.running选项勾选,这样应用运行时也能自动编译。
2. 配置Tomcat的自动更新策略
接下来让Tomcat配合编译结果自动更新应用:
- 点击右上角运行/调试配置的下拉框,选择
Edit Configurations... - 在弹出窗口里找到你的Tomcat Server配置,切换到
Server标签页 - 在
On 'Update' action下拉菜单中选择 Update classes and resources(这个选项会同步更新修改的类文件和静态资源,比如HTML/CSS/JS) - 在
On frame deactivation下拉菜单也选 Update classes and resources(当IDE窗口失去焦点时自动触发更新,配合自动编译,相当于「保存即更新」) - 确保
Update resources on frame deactivation复选框处于勾选状态(部分版本是单独的选项)
3. 验证效果
启动Tomcat服务器后,修改任意JSP、HTML或Java类文件,按Ctrl+S(Windows/Linux)或Cmd+S(Mac)保存,或者用Ctrl+Shift+S(Windows/Linux)/Cmd+Shift+S(Mac)执行Save All。稍等几秒刷新浏览器,就能看到修改后的效果啦!
小提示
- 建议使用
war exploded部署方式(在Deployment标签页设置),比war包部署的热更新效率高很多,不用重新打包。 - 大部分Java类的修改能通过热替换生效,但如果改了类的继承关系、新增注解这类结构变动,还是需要重启Tomcat才能生效;静态资源和JSP的修改则是即时生效的。
内容的提问来源于stack exchange,提问作者Ess
相关产品推荐
相关产品推荐

