Tomcat + Idea 部分jar包 Jrebel热部署

本文章只解决tomcat部分jar包热加载:在开发项目工程中,Tomcat的lib目录下面有几百个jar包,但是只希望让lib包下面的某几个jar包在更改代码动态生效而且不重启

步骤:

1. Idea配置jrebel
2. Tomcat jrebel的配置
3. Idea配置连接 tomcat jrebel
4. 测试远程热部署项目

热部署的那些问题 

1. idea 中配置jrebel 

1.1 安装jrebel插件

 1.2 激活jrebel插件

idea配置参考:IDEA插件-热部署:JRebel_一张小羊毛的博客-CSDN博客_idea 热部署插件

1.2.1 生成guid

访问地址:Generate GUIDs online生成guid

1.2.2 激活

点击JRebel Activation打开激活页面

输入服务地址:https://jrebel.qekang.com/{guid}和邮箱,勾选同意条款点击激活即可

 2. Tomcat jrebel的配置

2.1 文件移动

安装方式:

1. 下载地址:Previous JRebel Releases | JRebel & XRebel by Perforce

2. idea plugin 官网 https://plugins.jetbrains.com/

3. idea 插件搜索安装

找到插件位置(idea插件安装方式)

C:\Users\qpy\AppData\Local\JetBrains\IntelliJIdea2021.3\plugins

解压 jr-ide-idea.zip

 将 jr-ide-idea\lib\jrebel.jar 拷贝到 \jr-ide-idea\lib\jrebel6\lib 里面 (第3步配置使用)

2.2 修改Tomcat启动命令行,增加jrebel agent

 在catalina.bat 最后几行添加参数(linux的catalina.sh 类似)

windows方式: 修改catalina.bat

set "JAVA_OPTS=%JAVA_OPTS% -agentpath:绝对路径/jrebel/jrebel64.dll -Drebel.remoting_plugin=true -Drebel.dirs=项目绝对路径/webapps/子项目/WEB-INF/lib,项目绝对路径/webapps/子项目/WEB-INF/classes"

linux方式: 修改catalina.sh脚本增加启动参数

修改catalina.sh

#jrebel hotswap remote reload  
JAVA_OPTS="$JAVA_OPTS -agentpath:/home/jrebel/lib/libjrebel64.so -Drebel.remoting_plugin=true -Drebel.dirs=...webapps/子项目/WEB-INF/classes, ...webapps/子项目/WEB-INF/classes"

2.3 向启动机器添加依赖文件, 文件(libjrebel64.so, jrebel.jar)放入在catalina.sh中配置参数 -> -agentpath 时指定的路径

linux示例,windows类似

1. mkdir -p /home/jrebel/lib 
2. 上传libjrebel64.so 和 jrebel.jar文件,
3. 修改文件权限 
chmod u+x /home/jrebel/lib/libjrebel64.so

设置jrebel远程服务密码,8位字符

./java -jar /home/jrebel/lib/jrebel.jar -set-remote-password 12345678 SUCCESS: Remote server password set to '12345678'

启动Tomcat测试jrebel是否加载成功

3.Idea配置jrebel

3.1 配置jrebel 需要远程热部署的服务器

3.2 配置jrebel启动模式

remote server模式表示其它服务器运行的tomcat

 4. 测试远程热部署项目

4.1 选择需要远程部署的工程 xx-tree

此时在xx-tree 工程src/man/resources 会生成jrebel两个文件用以标识模块工程,修改工程标识ID如下所示,一般不用修改配置文件

 

4.2 执行mvn打包,将带有 "rebel.xml"和"rebel-remote.xml"的jar包放入服务器,重启服务器 (这一步很重要)

4.3 测试修改文件

浏览器访问

5. 便捷性

1. 在一个大型应用中,启动一次5分钟以上,中间浪费的时间影响工作效率,而通过 mvn package后,jrebel会自动将 class文件或jar文件同步到tomcat服务器,此时1s同步代码的时间换取了5分钟重启等待的时间

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值