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

本文详细介绍了如何配置和使用JRebel实现Java应用的热部署,包括服务器端的安装、激活、配置以及本地IDE的设置,通过JRebel可以显著提高开发效率,避免频繁的重启服务。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

系列文章目录


前言

  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
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值