一 热部署介绍
作为一个java后端RD,每次修改代码完自测都要 重新启动tomcat,java代码才能生效,每次改动都要重启,这很浪费时间
idea提供热部署,做到修改java代码立刻生效!非常赞! 下面看下怎么配置
二 配置方法
1 tomcat的EditConfutations配置中在Deployment页面选择exploded部署包
2在Server页面选择 On ‘update’ action
首先来看 on update action 相关的解释,从字面上理解 就是 手工触发 update 动作的时候 做什么 On Update action 设置为 update classes and resources
再来看on frame deactivation ,意思是 IDE 失活时 做什么,就是说 IDE 失去焦点时 做什么。比如IDEA最小化,或者屏幕切到浏览器页面等等 设置为Do nothing
如下图所示
3 必须是DUBUG启动模式,此时启动TOMCAT服务器 就支持热部署了,亲测可用!
三 配置说明
1 在选择tomcat的EditConfutations配置中在Deployment页面选择部署包的时候热部署必须是web:war:exploded包。
1⃣️war exploded模式是直接把文件夹、jsp页面 、classes等等移到Tomcat 部署文件夹里面,进行加载部署。因此这种方式支持热部署,一般在开发的时候也是用这种方式。
2⃣️web:war包是 war模式这种可以称之为是发布模式,看名字也知道,这是先打成war包,再发布
2 设置On Update action
update resources ---- 更新静态的资源,比如html,js,css等 运行模式和调试模式都是立即生效。java代码运行模式和调试模式都不立即生效
update classes and resources ---- 更新java,jsp和静态资源( 1. java 修改后,会被编译成.class 然后覆盖到target/kao文件夹下,IDE调试模式的情况下,立即生效。IDE运行模式下,不立即生效,需要redeployed才可生效。 2. jsp修改后,再次被访问的时候,会自动更新,重新编译成.java---->.class 保存在tomcat的work目录下。由于是访问时才检测是否修改,是否需要重新编译,所以 IDE 运行模式 和 IDE调试模式下,都是立即生效。刷新下页面就可)
3 设置On frame deactivation
IDE失去焦点的情况下 自动触发,而开发过程中 可能需要查询资料 或 与人聊天 或干其它事,IDE需要不停的失去焦点。每次失去焦点就自动触发 update ,CPU一下子 费很多,电脑瞬间变慢,所以没有必要这样,设置为Do nothing 最好,官方也默认的是 Do nothing
四 不足支持
经过亲自测试发现:虽然按照上面截图介绍的配置启动,java代码修改变量修改方法的时候可以立即生效,达到热部署的目的,但是在增加方法和删除方法上目前还是不支持立即生效的 还需要重新部署。