IntelliJ IDEA 14 利用JRebel实现热部署

特别鸣谢:http://wlb.wlb.blog.163.com/blog/static/467413201522095132658/

©IntelliJ IDEA开源社①群 185441009

鸣谢:http://www.hankcs.com/program/java/intellij-idea-configuration-of-jrebel-automatic-hot-deployment.html

http://truemylife.iteye.com/blog/1140921

----------------------------------------------------------------------------------------------------------------

说明:IntelliJ IDEA的版本:ideaIU-14.1.5

JRebel版本:jr-ide-idea-6.0.2

 

前言:

1.在Java的开发过程中,每次写完代码,都要“编译->发布->启动->查看启动结果->刷新浏览器”,会耗费一定的时间,而且影响心情,而运用JRebel的热部署可解决此问题。使用IntelliJ IDEA+JRebel热部署,不仅在修改java代码上十分方便,且在修改js代码、HTML代码上更是可以算上即时刷新。2.本博客第一次采用“特别鸣谢”中的方法在配置JRebel的过程中可能是因为破解JRebel失败而没有成功,第二次采用©IntelliJ IDEA开源社①群中的破解方法配置成功,所以建议读者直接按本博客方法进行配置,不用下载破解版。(当然你也可以按照鸣谢网址中的方法进行尝试。)

步骤:

一、下载JRebel插件

地址:http://download.csdn.net/detail/ablipan/8397321

说明:下载后为zip文件,不用解压,待会儿安装直接可以用zip格式安装。

二、安装JRebel插件

(这个过程的第1步是照搬“特别鸣谢”中网址的方法进行的,第2步是©IntelliJ IDEA开源社①群中的方法。)

1.File->Settings->Plugins->Install plugin from disk...->Apply->Restart,这样Jrebel插件就装好了。如下图所示:

2.激活Jrebel。重启IntelliJ IDEA后,按照以下的图示方法:(注:下面的图或许不够清晰..尤其是对第一次装这个的童鞋--可以直接看本文最后的“附3:清晰版2.2”)

说明:上图中右边的框中的信息写在这里,以免看不清:

http://idea.lanyus.com/ilanyu

langyu199950316@gmail.com

出现了上图中的Offline Mode is:ACTIVE(36499 days and 23 hours left) 信息表明已经激活成功了。此外,配置成功后会在IntelliJ IDEA出现以下提示:

三、测试

1.java代码修改测试。修改发布项目的Tomcat的配置,具体修改处见以下图示。

2.通过JRebel启动Tomcat

这是运行后的界面:

3.修改java代码:

原java代码:

修改后的代码:

可以看到在修改java代码后,只要点击项目发布的浏览器,JRebel会自动地进行编译。IntelliJ IDEA的底部会显示JRebel自动编译java的信息:

当然,你也可以点击下面的Deploy All按钮进行手工编译。

点击“提交”后运行结果:

4.js代码测试

原js代码:

修改后:

刷新页面:

后记:通过热部署,可以明显地体会到修改代码后开发人员什么都不用做JRebel就可以自动地对项目进行快捷地编译、部署工作。

 

热部署的应用

重要说明:在上文的“测试中”及下文中的“补”中,我大谈特谈热部署的应用,实际上基本都是错的,没什么参考价值。那么怎样在修改文件后进行编译呢?如何知道是否热部署是否成功呢?今天像一位热心的网友请教才知道特简单!看下面:

如我们修改任意一个java类,右键:

点击Compile 'UserController.java'即可编辑所在java类。

或者:点击下面红框中的图标即可

在Event log 可看到编译日志。

我们点击页面,控制台出现下面信息,说明热部署成功:

我这里怎么重载了2次?--暂时不管了。

 

2016/2/14

又不行了。还是按补1中的方式去做咯。。。

待续。。。

 


 

 

补:

补1:

1.火狐偶尔好像不灵,但是欧朋和谷歌是100%支持热部署的。

2.如果新建的项目JRebel没发挥作用,这八成是项目中缺少rebel.xml的原因,用idea的命令把rebel.xml弄出来就可以,点击项目右键,然后如以下图示:

点击rebel.xml,在maven项目中的resource文件夹中就会生成rebel.xml了。

此外,打开rebel.xml,会显示:

3.虽然开发者运用热部署在修改代码后什么都不用干,只需点击项目所在的浏览器就可触发热部署,热部署虽然快捷,但也需要时间(即使一个简单的测试项目也要2~3秒),所以在修改代码后立即点击项目发布的浏览器并不知道部署完了没有,还要回到idea上去看,这样不太方便。在上面的博文中介绍了可以点击idea下面的Deploy All 按钮,部署完毕在到发布的页面,但经测试点另外一个命令会更快一些(特别是较大项目时):

下面进行对比测试:

1.点击 Deploy All 命令,下面是控制台的打印信息

2.点击Update 'Unnamed' application (Unnamed就是Tomcat,因为没有命名,是默认名)

弹出对话框,选择Update classes and resources

以下是控制台信息

当点击项目的发布浏览器,并点击相应的请求,出现以下信息(注意:用点击 Deploy All 命令并不会出现下面红框框中的信息)。

小结:通过以上测试可看出执行2种命令的区别:1.执行Deploy All命令,是部署服务器所有应该部署的内容;而执行Update 'Unnamed' application的Update classes and resources只是更新项目的classes、resources文件。2.二者的执行顺序不同。执行Deploy All命令是一下子全部部署完,而后者是先进行编译,当用户提交页面请求时,JRebel执行了更新classes、resources文件的命令。综合考虑,在修改代码后,优先使用Update 'Unnamed' application的Update classes and resources命令。

 

补2:

通过测试,发现热部署主要是针对于服务器的,因此建议通过启动服务器访问页面(在web.xml设置默认主页),如果是在页面上启动,现在可以肯定的是点击服务器发布的页面不会触发热部署(前台代码--js/html可以,后台java代码不可以),而通过idea底部的JRebel Executor命令栏中的Update 'xxxx' application偶尔无效如下图说明:

1.通过启动服务器访问页面

2.在页面上启动服务器

点击1--Update 'index2.jsp' application,若弹出的提示框有像下面这样,表示可进行热部署,但偶尔不会出现“Update classes and resources”。

 

补3:如果修改的是web.xml,则选择Redeploy(重新部署)

 

附1:热部署成功的标志

 

附2::Jrebel官方对热布署支持的场景列表(查看官网说明http://www.zeroturnaround.com/jrebel/features/

 

Java EE Support

Jrebel

JVM Hot Swap

Time to reload

< 1s

< 1s

No memory leak

YES

YES

 

Changes to method bodies

YES

YES

Adding/removing Methods

YES

NO

Adding/removing constructors

YES

NO

Adding/removing fields

YES

NO

Adding/removing classes

YES

NO

Adding/removing annotations

YES

NO

Changing static field value

YES JRebel 3.0+

NO

Adding/removing enum values

YES JRebel 3.0+

NO

Changing interfaces

YES

NO

Replacing superclass

NO

NO

Adding/removing implemented interfaces

NO

NO

 

Skip builds for WAR directories

YES

YES

Skip builds for .WAR/.EAR class updates

YES

YES

Skip builds for .WAR/.EAR resource updates

YES

NO

Map multiple source dirs to one .WAR/.EAR target dir

YES

NO

Map classes and resources with include/exclude patterns

YES

NO

Map multiple source dirs with Ant-style patterns

YES

NO

Use system properties to make mapping machine-independent

YES

NO

Maven plugin

YES

NO

JSP EL changes

YES

NO

JSP Scriptlet changes

YES Enterprise Add-on

NO

EJB 1.x session bean interface changes

YES Enterprise Add-on

NO

EJB 2.x session bean interface changes

YES Enterprise Add-on

NO

EJB 3.x session bean interface changes

YES JRebel 3.0+

NO

JSF changes (Mojarra)

YES JRebel 3.0+

NO

JPA changes (Hibernate, EclipseLink, TopLink, OpenJPA)

YES JRebel 3.0+

NO

CDI changes (Weld)

YES JRebel 3.0+

NO

ResourceBundle

YES

NO

Spring Framework 2.x or later

YES

NO

Hibernate

YES JRebel 3.0+

NO

JBoss Seam 2.x or later

YES JRebel 3.0+

NO

Google Guice

YES

NO

Stripes 1.x or later

YES

NO

Apache log4j 1.2.x or later

YES

NO

Apache Struts 1.x

YES

NO

Apache Struts 2.x or later

YES

NO

Apache Tapestry4

YES

NO

Apache Velocity

YES

NO

Apache Wicket

YES

NO

CgLib

YES JRebel 3.0+

NO

Javassist

YES JRebel 3.0+

NO

Atlassian Confluence plugins

YES

NO

ClassWorlds

YES Beta

NO

Apache Felix

YES Beta

NO

Eclipse Equinox

YES Beta

NO

IntelliJ IDEA 7.x, 8.x plugins

YES Beta

NO

NetBeans plugins

YES Beta

NO

 

 

Jrebel对第三方框架支持对应表

查看官网http://www.zeroturnaround.com/jrebel/features/frameworks/

 

附3:清晰版2.2(所谓2.2是指本文安装JRebel插件的第二步)

这是我在新电脑上装IDEA的热部署,所以把原文中“安装JRebel插件的第二步”分化几个小步骤,说更清楚点。

1.打开设置Settings-->Other Settings-->Offine Mode,点击Configure

2.填写以下信息,点Activate JRebel

3.激活成功

4.重启IDEA,打开这里,这里要说明一下--因为没来得及截图,实际上当你看到下面的这个画面之前还要做件事--即下面的紫色框框下面的现在是:Deactivate,可是本来记得是Activate,你点一下,才变成Deactivate,然后上面显示激活的的天数。

 

IntelliJ IDEA 2021 是一款强大的集成开发环境,支持多种编程语言,其中包括 Java。要利用 JRebel 实现热部署JRebel 是一个用于快速应用部署的工具,它允许你在不重启整个应用程序的情况下修改代码并立即看到更改。 以下是安装 JRebel 并在 IntelliJ IDEA 中启用热部署的基本步骤: 1. **下载 JRebel**: 访问 JRebel 的官方网站(https://zeroturnaround.com/jrebel/download)下载适用于 IntelliJ IDEA 的版本,通常会提供针对特定 IDE 和操作系统的安装包。 2. **安装 JRebel**: 将下载的 .jar 文件放入 IntelliJ IDEA 的插件目录,通常位于 `plugins` 文件夹下。如果找不到这个文件夹,可以在 Settings (Preferences) > Plugins 管理页面点击 "Install from disk..." 自行选择。 3. **激活 JRebel**: 启动 IntelliJ IDEAJRebel 插件会在欢迎界面提示你激活。按照屏幕上的指示输入许可证信息。 4. **配置 JRebel**: 在菜单栏选择 "Tools" -> "JRebel" 或者直接右键点击 JRebel 图标,在弹出菜单里选择 "Configure JRebel"。在这里设置项目的监控规则,指定哪些类和文件需要被监视。 5. **启用热部署**: 在项目结构窗口,找到你想进行热部署的模块,右击选择 "Run 'Main Class'"。在运行配置中,勾选 "Use JRebel for code re-deploy" 选项,即可开启热部署功能。 6. **实时修改并查看效果**: 当你在代码中做改动时,保存文件,IDEA 应该能在几分钟内自动更新你的应用程序而无需重启。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值