原创

IntelliJ IDEA jetty实现多模块热部署

温馨提示:
本文最后更新于 2019年09月24日,已超过 1,679 天没有更新。若文章内的图片失效(无法正常加载),请留言反馈或直接联系我

maven管理多模块时一般会依赖其它自有的jar包,本地开发时如果修改依赖jar包后是需要重新打包并重启web,这里给大家介绍一个Jrebel插件。

Jrebel是一个非免费版热部署插件,具体原理据说是直接修改内存中的class和一些配置型文件(不是很正确)具体大家可以去官网(英文的~~)上看。这里先介绍一下IntelliJ IDEA的使用方式。

先在IntelliJ IDEA里面下载并安装jrebel插件,我们选择Jrebel for IntelliJ

一般来说下载很快,如果很慢的同学可以取消多下载几次,我下载的时候就遇到了公司网最慢的时候。

下载完后重启IntelliJ IDEA然后打开settings里面会有一个Jrebel的配置项


这个已经激活后的界面,如果未激活Jrebel License里面是没有信息的。

未激活的时候先点击右上角的Change License然后选择第三项Connect to License Server




上面第一个框是激活服务器地址下面是邮箱,前缀http://idea.lanyus.com/是固定的后面的bbb可以是随便的字符,下面的邮箱随便填写一个假的也可以,然后把最下面的I agree with the terms & conditions of the License Agreement勾上这是同意协议不勾过不去,然后点击change license。

激活成功会显示这张图。




然后再回头去看一下settings里面jrebel的license信息2116-7-29大家可以使用100年。



然后在需要进行热部署的项目上右击选择Jrebel–>rebel.xml


之后会默认在在src/main/resources下面生成一个rebel.xml。提交文件时svn里面需要对rebel.xml进行忽略不提交

如果要改变文件位置需要对pom.xml文件进行修改,为了保证最小侵入我们不对pom.xml文件进行修改。

然后修改web工程pom.xml的jetty插件把scanIntervalSeconds设置为0再新建一个reload配置项目参数是manual。

当我们在随便一个jar包模块中或者web工程中修改或新建一个java文件后先crtl+shift+F9编译一下修改的文件,注意新建的java文件一定要先编译新建的文件再编译其它文件,否则引文件这个类的文件会报编译错误无法法找到xxx.class。当控制台显示JRebel: Reloading class 'xxx.xxxx.xxx'时表示热部署成功可以直接看效果了,是不是很快很神奇。

一般来说默认热部署一次是2秒,可以在settings–>jrebel里面修改那个刻度一样的标尺越往左越快。

相对于eclipse来说IntelliJ IDEA比较好激活,我们这里选择的是使用license服务器方式进行激活,这种激活方式好处是不侵入jrebel原文件都是官方原版保证了稳定性。缺点是license服务器是由软件爱好者提供具有不确定性,如突然有一天不提供服务了对已激活的只要不重装系统和删除IntelliJ IDEA应该没有问题而未激活的用户就只能重新寻找破解手段了。

在网上有人提供破解版的jrebel.jar,但很不幸在付出高昂的CSDN下载分后发现被骗了,但这个破解文件确实存在并且我觉得破解出来的东西肯定是对原文件有侵入谁也不知道作者在jar中加了什么东西,所以目前来说license服务器方便并且有效。。

另外http://blog.lanyus.com/这个博客上提供IntelliJ IDEA的破解方法和license服务器搭建方法,大家可以看一下。



正文到此结束
本文目录