开发环境下,tomcat对热布署的支持还是比较弱,致使开发过程中浪费大量时间在重起服务上。发现了Jrebel,它对热布署的支持相对比较全面。
虽然Jrebel官方号称使用它不存在内存泄漏问题,但是占用一定的资源是肯定的,因此不考虑在正式环境下使用热布署。Jrebel除了支持Tomcat还包括Jetty、Resin、Weblogic等等,在使用Jrebel后,期望看到开发人员早上开机启动一次tomcat后就够了。通常使用myeclipse,eclipse进行run的时候修改类文件的话,不会进行热布署,用deBug Run的时候只要是修改类方法里面的代码 是可以实现热布署的,但是如果是增加方法,增加类的属性的话是不会进行热布署的,用了JRebel就可以实现了
eclipse下使用有两种方法
1:安装jrebel插件
官网安装方法:
http://zeroturnaround.com/software/jrebel/download/installing-jrebel-plugin-for-eclipse/
如果是eclipse3.6 Helios及以后的版本:
点击 Help -> Eclipse Marketplace 搜索“ JRebel ” 找到相应 点击Install
如果是eclipse3.3,3.4,3.5等 使用 Help-->install new software进行安装
url为:http://www.zeroturnaround.com/update-site/
如果要离线下载的话,可以通过下载离线包的方式进行:
http://www.zeroturnaround.com/update-site/update-site.zip
安装好后在window-->preferences 可以看到JRebel项
默认是选中了 Use embedded JRebel(5.0.1)
也可以自已选择jrebel.jar 这些包可以从http://zeroturnaround.com/software/jrebel/download/prev-releases/
下载
配置 JRebel.xml
右键项目 点击属性就可以看到JRebel选项
这些配置好后基本上都可以直接使用了,要注意的是 server里配置下
publishing配置为Never publish automatically 然后下方的JRebel Integeration里选中 enable JRebel agent,并且修改Modules里项目的auto Reload改为disabled
一般项目应该就没什么问题了,如果项目比较大,会发现启动比较慢,并会报错:
java.lang.OutOfMemoryError: Java heap space
出现这个问题的话就在 server配置里点击 “Open launch configuration”
配置Arguments 在VM arguments:里加上
-noverify
-Drebel.spring_plugin=true
-Drebel.aspectj_plugin=true
-Drebel.struts2_plugin=true
-Drebel.hibernate_plugin=true
-Drebel.jackson_plugin=true
-Drebel.log4j-plugin=true
-Xmx512M -Xms512M -XX:MaxPermSize=1024m (主要是这个 给jrebel分配大内存)
Drebel.[plugin_id] =false
(/ true
) 是用来指定JRebel整合框架的
主要框架有可以去这里找:http://zeroturnaround.com/software/jrebel/features/frameworks/
-javaagent:D:\jarLib\jrebel.jar 这个可以指定相应jar包,在vm里配置了这项的话,可以不用安装jrebel插件
-Drebel.dirs=D:/lsq/lsqWorkspace/yhoa/web/WEB-INF/classes 这个是配置监控的项目的class文件路径
参考文章:
http://www.jiucool.com/jrebel-eclipse/
http://blog.csdn.net/zhangpeng455547940/article/details/7374956
http://www.javatang.com/archives/2010/11/29/3337530.html
附件是从csdn上找到的jrebel5破解jar包
新找到的5.3.1破解包。将jrebel.jar和jrebel.lic放一起就行了