特别鸣谢:http://wlb.wlb.blog.163.com/blog/static/467413201522095132658/
©IntelliJ IDEA开源社①群 185441009
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开源社①群中的破解方法配置成功,所以建议读者直接按本博客方法进行配置,不用下载破解版。(当然你也可以按照鸣谢网址中的方法进行尝试。)
步骤:
地址:http://download.csdn.net/detail/ablipan/8397321
说明:下载后为zip文件,不用解压,待会儿安装直接可以用zip格式安装。
(这个过程的第1步是照搬“特别鸣谢”中网址的方法进行的,第2步是©IntelliJ IDEA开源社①群中的方法。)
1.File->Settings->Plugins->Install plugin from disk...->Apply->Restart,这样Jrebel插件就装好了。如下图所示:
2.激活Jrebel。重启IntelliJ IDEA后,按照以下的图示方法:
说明:上图中右边的框中的信息写在这里,以免看不清:
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就可以自动地对项目进行快捷地编译。
附:
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/
IntelliJ IDEA 14 利用JRebel实现热部署
原文:http://www.cnblogs.com/wql025/p/5017823.html