一、Intellij热部署插件JRebel
包含:介绍jrebel、idea安装jrebel插件、激活jrebel(非免费,需要免费激活使用)、测试jrebel本地tomcat热部署、及解决jrebel插件不起作用
测试效果图:
1.测试,启动idea中的tomcat服务器。--注:我用是swagger,可以用浏览器或者postman工具测试接口(推荐)。
接口:返回Hello Spring Boot1 | 访问接口:查看返回数据,返回数据为Hello Spring Boot1 |
---|---|
2.不关闭tomcat服务器-项目一直在运行中.....
将接口Hello Spring Boot1修改为Hello Spring Boot2 | 再次访问接口: 查看返回数据,返回数据为Hello Spring Boot2 |
---|---|
此时,发现返回结果是Hello Spring Boot2,实现了在服务器运行的时候修改代码和数据、而tomcat服务器并没有重新启动,代码或数据已经实时更新。
介绍JRebel:
JRebel使你能即时分别看到代码、类和资源的变化,你可以一个个地上传而不是一次性全部部署。当程序员在开发环境中对任何一个类或者资源作出修改的时候,这个变化会直接反应在部署好的应用程序上,从而跳过了构建和部署的过程,每年可以省去部署用的时间花费高达5.25个星期。
JRebel是一款Java虚拟机插件,它使得我们能在不进行重部署的情况下,即时看到代码的改变对一个应用程序带来的影响。JRebel使你能即时分别看到代码、类和资源的变化,你可以一个个地上传而不是一次性全部部署。
安装JRebel
安装和使用JRebel需要注意两点:激活和设置
1、在IDEA中一次点击 File->Settings->Plugins->Brows Repositories
2、在搜索框中输入JRebel进行搜索
3、找到JRebel for intellij
4、install
5、安装好之后需要restart IDEA
激活JRebel
JRebel并非免费的插件,需要激活之后才能使用。
最新激活url地址 : http://139.199.89.239:1008/b8fdf475-b9f7-4146-b426-6e1bb5a17a16
下面的框中输入邮箱地址 , 可随意填 test@123.com. 然后点击右下角的激活按钮即可
在IDEA中一次点击 File->Settings->JRebel 并找到激活界面(因为我的已经激活了,点击change liense进入的激活界面)
操作方法就是点击Work offile 按钮即可:
说明:
如果出现激活过期的情况下 , 可以重新生成一下GUID , 替换原来的GUID即可 .
在线生成GUID地址:
http://www.ofmonkey.com/transfer/guid
手动热部署:每次更改代码,不需要重启tomcat
使用Tomcat Web容器来开发的话,还需要配置运行项目,
如果web启动的时候,出现内存溢出现象则需要配置一下VM options:1099
如果你用Jetty容器,那就不用像上面这样配置,直接点击绿色小火箭,运行/调试都可以.
此时,已经配置好JRebel,可以进行测试啦
测试效果如最上测试效果图一样!
JRebel没有效果时的相关设置及解决办法
此时虽然安装好了JRebel并成功激活了,但是我们使用JRebel debug的时候,发现修改代码后,热部署不起作用。因为还需要设置两个地方
1、设置项目自动编译
2、设置 compiler.automake.allow.when.app.running
ctrl+shift+A 或者 help->find action…打开
搜索registry
找到 compiler.automake.allow.when.app.running 并✔
3.有时候会发现Jrebel不起作用,即使是重启Tomcat都不起作用。
在Jrebel项目配置文件会存放项目的路径,我将项目复制了一份,项目路径变了,但是相应的配置文件中没有更改,所以,Jrebel就不起作用了。
解决办法如下:
(1)如果项目中不存在rebel.xml 在Jrebel插件中点击生成rebel.xml
(2)如果项目中已存在rebel.xml 在src/main/resources中修改项目的路径,查看项目路径是否正确!
生成rebel.xml :
本地tomcat热部署.png
本地tomcat热部署和远程tomcat热部署
建议:不要选择远程tomcat热部署,现在还没有配置远程服务器配置,会提示你 new remote server。此时,把远程不要勾选。
目前先实现本地tomcat热部署;
测试效果在最上面!
解决的问题:项目更改完代码,每次更改都要重新启动服务器,在开发阶段浪费很多时间,idea中tomcat服务器重启有时候会很慢,so. 就用idea jrebel插件,在项目运行中,更改代码后不用重启服务器,实现代码实时更新;
远程tomcat热部署,还需要配置好多,后续进行更新远程部署;