利用Jrebel热部署提升工作效率

利用Jrebel提升工作效率

老早就听说有Jrebel这款神器了,热部署,去官网看了看,license贵的离谱啊,300RMB per licence

只有用盗版咯。

阿弥陀佛

记录下流程。

1.安装插件

本人习惯用IDEA做开发(依然是盗版,罪过),找Jrebel的插件咯。 鄙视IDE的童鞋可以直接配置JVM,下面会提到的

在IDEA Setting里的plugins可以在线安装,鄙人所处网络环境堪忧,选择离线安装,这也是本人比较推荐的一种方式。

移步https://plugins.jetbrains.com/plugin/4441?pr=idea 下载适合IDEA版本的ZIP包

还是在IDEA Setting里的plugins里,选择install from disk,安装成功。

2.破解 (罪过罪过

下载最新版的国人HACK版插件,(关注“最佳人生”微信,每次有新版作者会推送的)。

下载完毕后,找出lib下的jrebel.jar和jrebel.lic,复制到IDEA Jrebel Plugins的lib目录下,替换,ok

3.RUN RUN RUN

IDEA下粗线了Run With Jrebel的选项

点击吧。

哈哈哈,是不是没跑起来,OutOfMemoryError了吧?

配置下JVM呗。

我在IDEA的tomcat VM OPTION下 加入了

-Xms1024m -Xmx1024m -XX:PermSize=128M -XX:PermSize=256M

再启动

如果粗线如下log

2015-02-05 22:42:16 JRebel:  
2015-02-05 22:42:16 JRebel:  #############################################################
2015-02-05 22:42:16 JRebel:  
2015-02-05 22:42:16 JRebel:  JRebel Agent 6.0.3 (201501261446)
2015-02-05 22:42:16 JRebel:  (c) Copyright ZeroTurnaround AS, Estonia, Tartu.
2015-02-05 22:42:16 JRebel:  
2015-02-05 22:42:16 JRebel:  Over the last 1 days JRebel prevented
2015-02-05 22:42:16 JRebel:  at least 4 redeploys/restarts saving you about 0.2 hours.
2015-02-05 22:42:16 JRebel:  
2015-02-05 22:42:16 JRebel:  Licensed to anonymous-user
2015-02-05 22:42:16 JRebel:   with the following restrictions: 
2015-02-05 22:42:16 JRebel:   ####### Cracked by anonymous-user, For FUN! Unlimited! Enjoy! ######
2015-02-05 22:42:16 JRebel:  
2015-02-05 22:42:16 JRebel:  License type: perpetual
2015-02-05 22:42:16 JRebel:  
2015-02-05 22:42:16 JRebel:  
2015-02-05 22:42:16 JRebel:  #############################################################
2015-02-05 22:42:16 JRebel:  
Connected to the target VM, address: '127.0.0.1:64146', transport: 'socket'

恭喜你,再也不用每次修改完一行代码,重新RUN,然后思考人生了!!

试了下,改完代码鼠标移出IDEA,哗啦啦编译起来了,然后告诉我替换掉了的class的个数。

然后就起效啦!!


现在再来说不用IDE怎么办。

在Java的VM arguments 输入如下参数:

-noverify
-agentpath:JREBEL_HOME/lib/jrebel64.dll
#Linux用这个:-agentpath:JREBEL_HOME/jrebel_running/lib/libjrebel64.so
#Mac OS用这个:-agentpath:JREBEL_HOME/jrebel_running/lib/libjrebel64.dylib
-Drebel.dirs=WORKSPACE/webapp/WEB-INF/classes
-Drebel.disable_update=true
-DJAVA_OPTS=-Xms256m -Xmx256m -XX:MaxNewSize=512m

上述参数的相关说明: -agentpath: 这个是你使用的JRebel Agent版本的lib包的路径(路径后缀不要写成jrebel.jar),注意其中的斜线方向。 -Drebel.dirs :这个是你要监控的项目的 class 文件路径 -Drebel.disable_update: 设为true,就不会联网检查更新 -DJAVA_OPTS: 这个选项不是必须,当内存溢出的时候或其它特殊情况下才需要设置它的参数大小。

JREBEL_HOME代表Jerbel的放置目录,WORKSPACE代表工作目录

完事!尽情提高工作效率吧!