IDEA失去焦点,取消自动编译【已解决】

IDEA失去焦点,取消自动编译(已解决)


项目用热部署的方式部署,然后以Debug方式启动(方便我们在项目执行的过程中调试代码)。具体的热部署方式,网上有很多教程,请自行百度。



但是当我们以Debug方式启动项目以后,我们在编写Java代码的时候,一旦失去焦点项目就会报错,从编译的角度来说这是一个便捷的功能,毕竟能及时发现我们项目的错误,但是从用户的体验角度来说,我个人觉得没有那么友好。所以我建议我们取消这个功能



网上很多热部署的教程都是让我们把这两个选项都设置为Update classes and resources,却没有告诉我们这两个是什么东西,修改的关键也就是在这里。

IDEA失去焦点,取消自动编译【已解决】_第1张图片




On Update action:当代码发生改变时,IDEA执行什么操作

  • Update resource:如果有更新,且更新资源为(xx.jsp,xx.xml,不包括Java文件),就会立即生效

  • Update classes and resources:如果有更新,且更新资源为(资源文件或Java文件),就会立即生效。在正常运行模式下,修改Java文件也不会立即生效;但是在Debug模式下,就会立即生效。这两种模式下,修改resource资源文件都是可以立即生效的。

  • Redploy:重新部署项目,把原来的war包(我们的项目是以war包的形式放在Tomcat服务器上的)重新部署

  • Restart:重新启动服务器(时间最久,不建议使用)

IDEA失去焦点,取消自动编译【已解决】_第2张图片




On Frame deactivation:当失去焦点(不停留在IDEA里面),IDEA执行什么操作

  • Do nothing:不做任何事情(推荐使用)

  • Update resource:如果有更新,且更新资源为(xx.jsp,xx.xml,不包括Java文件),就会立即生效

  • Update classes and resource:如果有更新,且更新资源为(资源文件或Java文件),就会立即生效。在正常运行模式下,修改Java文件也不会立即生效;但是在Debug模式下,就会立即生效。这两种模式下,修改resource资源文件都是可以立即生效的。

IDEA失去焦点,取消自动编译【已解决】_第3张图片




所以我们只需要把On Frame deactivation,修改为Do nothing即可

IDEA失去焦点,取消自动编译【已解决】_第4张图片



设置为Do nothing之后,我们的项目就会不自动编译(在我们没有进行自动编译的设置基础上)。不过我更建议使用手动编译,毕竟也就是点一下的事情,开启自动编译多少还是会耗费计算机性能。开启自动编译的方式,也请自行百度。




Debug启动项目的情况下,可以点击小甲虫图标用于更新我们想要的资源。
但我发现不同版本的IDEA这个小甲虫图标的点击效果不一样,具体操作根据你的IDEA再看

IDEA失去焦点,取消自动编译【已解决】_第5张图片

你可能感兴趣的:(日常一记)