设为首页 收藏本站
查看: 730|回复: 0

[经验分享] JRebel + Maven + Jetty 热部署

[复制链接]

尚未签到

发表于 2017-2-27 11:55:14 | 显示全部楼层 |阅读模式
ave. Refresh. Enjoy. And stop redeploying in Java!
  JRebel is a JVM-plugin that makes it possible for Java developers to instantly see any code change made to an app without redeploying. JRebel lets you see code changes instantly, versioning classes and resources individually and updating one at a time instead of as a lump application redeploy. When developers make a change to any class or resource in their IDE, the change is immediately reflected in the deployed application, skipping the build and redeploy phases and preventing an average of 5.25 work weeks per year in redeploys!

http://zeroturnaround.com/jrebel/
\
http://www.infoq.com/cn/news/2010/05/jrebel

http://www.blogjava.net/xylz/archive/2011/06/12/352109.html

Crack JRebel 4.0,无需重启JVM,热部署解决方案
http://dl.dropbox.com/u/22951342/jrebel.jar  www.zeroturnaround.com最近又接触到一点WEB应用,想到Resin服务器重启需要花费比较多的时间(Spring将WEB服务搞得越来越复杂,越来越臃肿了),所以又想到了08年那时候用JavaRebel了。一段时间不用人家居然改名为JavaRebel了。
如果不熟悉的可以搜索下JRebel/JavaRebel,这里是官方网站:www.zeroturnaround.com。
最近刚发布了4.0版本,功能更强大,配置也更加简单了。价格不菲。
官方提供30天试用版,可以先体验下再决定是否购买。
看到里面的代码混淆让我很崩溃,没有深入研究混淆后的运行机制。比如下面居然有两个名称相同,参数相同,但是返回值不同的静态方法,不知是如何执行的。
public static void a(String s)和 public static String a(String),以及
private static void c()和private static String c()。
猜测是在运行的时候自己进行JVM指令的执行。这样的代码反编译后都不知道怎么写回去,想到崩溃,因为两个方法居然都有地方调用了。
DSC0000.png

zhangthe9 提供了一个4.0的破解版,我很好奇,咨询了下,居然还是以前的RSA签名算法。
好吧,翻出08年写的JavaRebel 2.0-M1的破解程序,重新生成一个license文件,修改公钥,替换license文件,居然运行正常。这么多年了,签名算法和步骤居然一点都没变,嗯,人家真执着!
当然是无限制版,所有功能可用,也没有时间限制。


#############################################################
JRebel 4.0 (201105311152)
   with Enterprise Add-On! (see http://jrebel.com/enterprise)
(c) Copyright ZeroTurnaround OU, Estonia, Tartu.
Over the last 1 days JRebel prevented
at least 0 redeploys/restarts saving you about 0 hours.
This product is licensed to www.imxylz.info
for unlimited number of developer seats on site.
== Cracked by imxylz (imxylz#gmail.com) from JavaRebel 2.0-M1, 2008 ==
#############################################################
伟大领袖毛主席,指引我们向前进!
jrebel cracked by imxylz
伟大领袖毛主席,指引我们向前进!
jrebel cracked by imxylz
JRebel: Reloading class 'ReloadClass'.change
伟大领袖毛主席,指引我们向前进!
class!

破解思路很简单,替换公钥,使用自己私钥生成签名License文件。
如果想屏蔽版本更新提示,有以下几种思路:
(1)修改调用更新坚持的类(难道有点大,因为混淆比较严重,不容易反编译)
(2)修改更新服务器的地址,将http://update.zeroturnaround.com/jrebel/地址修改,可以使用二进制工具直接修改字符串,比如我就将update改为updatt,无法解析域名就不能获取最新版本了。
(3)增加-Drebel.disable_update=true参数即可。(这种方法最简单)。

当然了,为了“保护知识产权”,不会将破解文件放出来,有需求的可以留言联系。(所谓的“计算机条例”是允许为了学习、研究而进行相关逆向工程的,哈哈)。
好吧,架不住国人的热情,这里是下载地址,需要翻X,你懂得!http://dl.dropbox.com/u/22951342/jrebel.jar  
[关键字: JRebel, JavaRebel, JRebel Crack, JRebel License, JavaRebel License]


[Java] JRebel + Maven + Jetty 热部署

http://blog.csdn.net/shagoo/article/details/55293522010-04-26 12:35 2752人阅读 评论(0) 收藏 举报
  早就厌烦了 Java 开发不断的容器自动重新加载漫长的过程,研究 maven + jetty 热部署方案的过程中偶然发现一样不错的东东,试用了一下果然很爽,发上来给大家共享,此物名为 JRebel (javarebel),目前支持大部分主流的 Java 容器,配置也相当简单,以下是与 maven + jetty 环境整合的步骤与要点:
  首先,下载 JRebel 包,目前网上有两个破解版本分别是 JRebel2.1a 以及 JRebel3.0-M1,我使用的是前者,下面是下载地址:http://d.namipan.com/d/842d40cc1ed226fc69e04892cdaeaec85cf85be105f41400 (需要的请尽快下载,以免链接失效)。
  然后拷贝到 %REBEL_HOME% 目录并添加该环境变量,进入目录运行 java -jar %REBEL_HOME%/jrebel.jar 生成根据本机 JVM 环境生成的 jrebel-bootstrap.jar 运行文件。

  然后添加 MAVEN 运行环境变量:MAVEN_OPTS 值为 -noverify -Xbootclasspath/p:%REBEL_HOME%/jrebel-bootstrap.jar;%REBEL_HOME%/jrebel.jar 然后再配置目标项目的 pom.xml,关闭 maven 的 jetty 插件本身的 reload 配置:
  <plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<configuration>
<scanIntervalSeconds>0</scanIntervalSeconds>
</configuration>
</plugin>
  最后启动 mvn jetty:run 你会发现现在不需要 reload 服务器就可以加载实时修改过的 class 文件了,很不错吧。其实我个人更推荐不要设置 MAVEN_OPTS 环境变量,新建一个比如名为 mvnrebel.bat 的文件,改写一下 mvn.bat 文件,把以上的运行命令加进去,这样还保留了原本的 mvn 执行文件,同时也可以根据需要启动带热部署的方案。
  JRefer 工具还提供其他各种主流环境的整合方案,包括 JBoss,Glassfish,Tomcat,SpringSource,Weblogic,SAP 等,详细内容请参考:http://www.zeroturnaround.com/reference-manual/server.html 对于开发人员来说,这无疑会大大减轻开发重新加载的问题,据调查平均可以提高 20% 的开发效率,效果相当的可观哦,有兴趣的朋友值得一试~

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-347958-1-1.html 上篇帖子: 创建maven的web项目,并用jetty调试 下篇帖子: jetty 长时间运行之后出现 PWC6117 file not found
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表