linux服务器安装JRebel实现远程热部署功能

系列文章目录


前言

  JRebel是一套JavaEE开发工具。Jrebel 可快速实现热部署,节省了大量重启时间,提高了个人开发效率。
  JRebel是一款JAVA虚拟机插件,它使得JAVA程序员能在不进行重部署的情况下,即时看到代码的改变对一个应用程序带来的影响。JRebel使你能即时分别看到代码、类和资源的变化,你可以一个个地上传而不是一次性全部部署。当程序员在开发环境中对任何一个类或者资源作出修改的时候,这个变化会直接反应在部署好的应用程序上,从而跳过了构建和部署的过程,可以省去大量的部署用的时间。
  下面手摸手教你如何搭建

一、安装和设置JRebel

1、官网下载和自己idea对应版本的 JRebel 安装包,下载链接:https://zeroturnaround.com/software/jrebel/download/prev-releases/

2、将下载好的包上传至服务器,解压命令:

unzip jrebel-2021.4.1-nosetup.zip

3、进入解压出来的目录 jrebel,对插件进行激活,执行命令:

./bin/activate.sh http://jrebel.qekang.com:80/e0b0f3e2-0d91-4e23-842c-9dfbe5ed11cd xxx@qq.com(输入自己的邮箱)

如果报错失效,就自行百度jrebel激活,找到最新的http连接就可以了。

4、设置远程密码,执行命令:

java -jar jrebel.jar -set-remote-password 88888888

5、进入目录 tomcat/bin,新建 catalina-jrebel.sh,内容如下:

#!/bin/bash
export REBEL_HOME=“[JRebel root folder]”
export JAVA_OPTS=“”-agentpath:$REBEL_HOME/lib/libjrebel64.so" -Drebel.remoting_plugin=true $JAVA_OPTS"
dirname $/catalina.sh $@
其中 REBEL_HOME 为服务端安装路径,如:/usr/local/tomcat/jrebel

6、设置执行权限后chmod 777 catalina-jrebel.sh,启动服务(不推荐,该命令不是后台运行,关闭服务会停止,推荐下面的方式):./catalina-jrebel.sh run

7、推荐!!!:打开catalina.sh文件,加入参数。然后正常启动tomcat就行

JAVA_OPTS="$JAVA_OPTS -agentpath:/usr/local/tomcat_airc/bin/jrebel/lib/libjrebel64.so  -Drebel.remoting_plugin=true -Drebel.remoting_port=28888"

-agentpath:参数是jrebel插件安装的目录,28888端口暂时用不到,可以不加。正常起服务就可以了,ps -ef | grep java可以看到有对应jvm参数。好的,至此服务器端的安装和设置就搞定了。
如果需要远程调试的小伙伴,可以添加该命令

CATALINA_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=18888"

二、本地使用步骤

1.前置工作

1、本地idea安装和服务器对应版本的JRebel插件,激活。

2、打开 Settings -> JRebel -> Startup,右侧选择 “Run on a remote server or VM”,选择对应的服务器,如“Tomcat 5.x,6.x,7.x,8.x and 9.x”

3、打开 Settings -> JRebel -> Remote Servers,Servers URL填写自己服务的ip和端口,填写远程热部署密码。

2.工程配置

  不管你的服务是war包启动,还是jar包启动,都是需要在工程中添加rebel-remote.xml,因为该文件有个id,是热部署功能找到对应模组的依据。不添加会导致热部署失败,如下:
  本地报错:Synchronization of project xxx to server airc failed: Warning: Cannot find a project with ID 'xxx ' on this remote server. Maybe it is not deployed, or project's ID in rebel-remote.xml is different on the server.
  服务器报错: JRebel: Error: Remoting module with hash 9ecec03229c8c64cbf2cd93477206c5a70514bfb was not found
  如何生成该文件?打开 View -> Tool Windows -> JRebel,勾选你要远程热部署的项目就可以生成了。如果有版本控制,就建议加入版本控制,重新发版
在这里插入图片描述

3.测试使用

  打开某个类,编写测试代码,打个日志,然后对单个文件编译一下,按理说会自动部署,如果不会就点击热部署的按钮在这里插入图片描述
执行命令
tail -1000f ../logs/catalina.out | grep JRebel
正常服务器的会出现如下图所示:
在这里插入图片描述

总结

  分享个案例测试给我提个bug,他当时还不知道有热部署功能。我5分钟解决问题,然后热部署上去,跟他说没有问题啊,然后留下他在风中凌乱。今天的bug又少了一个。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
引用\[1\]:作为web程序员,热部署对我们来说嘴熟悉不过了,如果项目没有热部署的话,会相当的麻烦,改了代码就得重新启动,如果项目比较大的话,启动要花很久的时间,有款叫Jrebel的插件非常好用,能够大大的提高工作效率,下面就来介绍怎么安装和使用这个插件。\[1\]JRebel 是国外团队开发的一款收费工具,JRebel 允许开发团队在有限的时间内完成更多的任务修正更多的问题,发布更高质量的软件产品,JRebel 可快速实现热部署,节省了大量重启时间,提高了个人开发效率。\[3\] 根据提供的引用内容,JRebel是一款非常好用的热部署插件,它能够大大提高工作效率,节省重启时间,提高个人开发效率。\[1\]\[3\]除了JRebel,还有其他一些热部署插件可供选择。其中一款比较常用的是Spring Loaded。Spring Loaded是一个开源的Java热部署工具,它可以在不重启应用程序的情况下,实时加载和应用代码的更改。它可以与Spring框架无缝集成,提供了快速的开发和调试体验。除了Spring Loaded,还有一些其他的热部署插件,如JRebel、DCEVM等,可以根据个人需求选择适合自己的插件。 #### 引用[.reference_title] - *1* [IDEA从零到精通之IDEA中安装并使用JRebel热部署插件](https://blog.csdn.net/m0_61466807/article/details/126235822)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [IDEA配置JRebel热部署(超级详细图文教程)](https://blog.csdn.net/weixin_42694593/article/details/126448828)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值