前言
碰到了一个项目,用jrebel启动项目时一直报错,不用jrebel时又没问题,找不到原因,又不想放弃热部署功能
因此思考能否通过其他方式进行热部署,找了HotSwapAgent和HotSwapHelper,两者都试过,HotSwapHelper对比HotSwapAgent少了一些配置操作,稍微更友好点,但是前置环境两者都是一致的。(JDK8-181特殊版本以及Jdk版本对应的DECVM)后者是国人开发的摸索下来发现配置比较方便,网络上对此文章比较少因此考虑写一篇文章记录下
JDK1.8特殊准备
HotSwapHelper她是基于HotSwapAgent开发的,而HotSwapAgent截止到发稿前支持jdk1.8的最高版本是jdk-8u181,建议使用此版本,如果没有使用到指定版本则不能用。(以后有时间再把jdk包传上来)
已安装了别的版本的可以使用JavaUninstallTool工具进行java版本卸载
DECVM安装
HotSwapHelper她是基于HotSwapAgent开发的,而HotSwapAgent也是以来DECVM的,因此需要安装一个(以后有时间再把jar包传上来)
下载好后使用超级管理员进入cmd:搜索命令提示符,点击以管理员身份运行
输入命令执行jar包,java -jar DCEVM的全路径
java -jar D:\development\DCEVM-8u181-installer-build2.jar
找到对应的jdk版本(这里用的指定的181版本),然后点右下角安装
插件安装与配置
环境准备好后打开idea,
先配置好项目使用的jdk,让这个项目使用被DCEVM安装过的jdk,左上角点击File—Project Structure
点project,然后找到已经安装好DCEVM的jdk(刚刚安装的是181版本)
然后接下来开始安装插件
点击File—Setting,
找到Plugins,搜索Hotswap,找到HotSwapHelper,点击Install安装
安装完,重启后点击File----Setting,搜索HotSwap
将Reload classes after compilation设置成Always或者Asks,选Asks会每次热部署改代码的时候会自动弹一个提示让你是否重载,选Always就不弹。
然后点击确定,
然后需要修改项目启动配置,这里不知道不改会不会有问题,个人改了没有任何问题,保险点还是改一下
找到Run----Edit Configurations…
然后再最下面设置成Update classes and resources
在项目启动的时候可以选择热部署启动或者普通debugger启动,两者都会自动热部署,热部署配置完成!
想要Debug不热部署 只能够回到File—Setting,搜索Hotswap,把上面那一栏改成never。DebugMode和Debug with Hotswap都会同时失去热部署功能
这一点比较奇怪,一选择Always就两者都生效,一选择Never就两者都失效,暂时没找到解决办法