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

2015-02-05 veryyoung 更多博文 » 博客 » GitHub »

原文链接 http://veryyoung.me/blog/2015/02/05/using-jrebel-hot-deployment-making-work-efficiency.html
注:以下为加速网络访问所做的原文缓存,经过重新格式化,可能存在格式方面的问题,或偶有遗漏信息,请以原文为准。


利用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代表工作目录

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