<>IDEA失去焦点,取消自动编译(已解决)
项目用热部署的方式部署,然后以Debug方式启动(方便我们在项目执行的过程中调试代码)。具体的热部署方式,网上有很多教程,请自行百度。
但是当我们以Debug方式启动项目以后,我们在编写Java代码的时候,一旦失去焦点项目就会报错,从编译的角度来说这是一个便捷的功能,毕竟能及时发现我们项目的错误,但是从用户的体验角度来说,我个人觉得没有那么友好。所以我建议我们取消这个功能
网上很多热部署的教程都是让我们把这两个选项都设置为Update classes and resources
,却没有告诉我们这两个是什么东西,修改的关键也就是在这里。
On Update action:当代码发生改变时,IDEA执行什么操作
*
Update resource:如果有更新,且更新资源为(xx.jsp,xx.xml,不包括Java文件),就会立即生效
*
Update classes and
resources:如果有更新,且更新资源为(资源文件或Java文件),就会立即生效。在正常运行模式下,修改Java文件也不会立即生效;
但是在Debug模式下,就会立即生效。这两种模式下,修改resource资源文件都是可以立即生效的。
*
Redploy:重新部署项目,把原来的war包(我们的项目是以war包的形式放在Tomcat服务器上的)重新部署
*
Restart:重新启动服务器(时间最久,不建议使用)
On Frame deactivation:当失去焦点(不停留在IDEA里面),IDEA执行什么操作
*
Do nothing:不做任何事情(推荐使用)
*
Update resource:如果有更新,且更新资源为(xx.jsp,xx.xml,不包括Java文件),就会立即生效
*
Update classes and
resource:如果有更新,且更新资源为(资源文件或Java文件),就会立即生效。在正常运行模式下,修改Java文件也不会立即生效;
但是在Debug模式下,就会立即生效。这两种模式下,修改resource资源文件都是可以立即生效的。
所以我们只需要把On Frame deactivation,修改为Do nothing即可
设置为Do
nothing之后,我们的项目就会不自动编译(在我们没有进行自动编译的设置基础上)。不过我更建议使用手动编译,毕竟也就是点一下的事情,开启自动编译多少还是会耗费计算机性能。开启自动编译的方式,也请自行百度。
Debug启动项目的情况下,可以点击小甲虫图标用于更新我们想要的资源。
但我发现不同版本的IDEA这个小甲虫图标的点击效果不一样,具体操作根据你的IDEA再看