开源、免费的热部署工具HotSeconds使用总结

本文讲述了作者在使用hotseconds热部署工具过程中遇到的问题,如版本兼容、安装教程、配置难题等,并总结了hotseconds适用于小规模修改和简单方法的场景,提示了其对配置类和Swagger文档的不支持。
摘要由CSDN通过智能技术生成

热部署工具——hotseconds的使用总结

在我写代码的过程中,我总是深受繁琐的打包和编译过程的烦恼,springboot项目大一点就要编译打包个几分钟,极大地降低了我的效率。于是我就开始寻找有没有一种方式可以简化这一个过程。后来的开发和学习中,我渐渐了解到了——热部署这一个解决方式。

我了解到的热部署方式有 spring-boot-devtools、JRbel 最后是这篇文章的主角——hotseconds

几个热部署工具的对比

spring-boot-devtools

  • 优点
    功能比较完备
    可以直接依赖导入
    是springboot原生,对于springboot的支持可能很好
  • 缺点
    不支持远程热部署
    效率稍慢
    没有idea插件支持

JRbel

  • 优点
    功能最为完备
    技术支持最强
    有插件端
  • 缺点
    贵,如果想要破解也是挺麻烦的(反正我没找到好的破解方法)
    配置繁琐

HotSeconds

  • 优点
    开源免费
    功能也十分完备
    支持远程热部署
    有插件端
    可拓展性强
  • 缺点
    技术支持可能稍弱
    具体限制看总结功能部分
    后面我会持续更新使用的体验

ps:本人并没有完全用过以上三款热部署工具,只用过hotseconds,再总结身边人的使用体验做的横向对比,如果有不同意见欢迎评论区补充!!!

下面就是完全小白级的安装教程了

安装热部署教程

下面是作者的安装文档(对于我来说其实感觉这份文档挺难懂的,本人菜)
https://github.com/Liubsyy/HotSecondsIDEA/blob/master/install/%E4%BD%BF%E7%94%A8%E6%96%87%E6%A1%A3.md

然后在我疯狂提问下,大佬终于连夜出了一份新的萌新教程(泪目)。
https://juejin.cn/post/7325375988853358607

中间遇到的问题

jdk版本不兼容

我在开始的时候服务器jdk版本是1.8的392版本,然后出现了不兼容的报错,远程热部署启动不起来

  • 解决办法
    https://www.oracle.com/java/technologies/javase/javase8-archive-downloads.html
    在上面的链接中找到181版本的jdk下载,ps:注意不要下成jre了。
    我的环境是linux 64位 ,所以我下载的版本就是jdk-8u181-linux-x64.tar.gz
    如何安装jdk到linux可以看我的这篇博客
    https://blog.csdn.net/weixin_60498767/article/details/135687473
    里面有很全的服务器环境配置方法
完全不知道这个插件怎么运用

说实在,作为一个小白,我按照作者的教程把压缩包解压了,sh install又java -XXaltjvm=dcevm -version之后,我就不知道要干嘛了。我就以为完事了,就跑去client端开始连接。其实我还需要打包一个jar包传到服务器中,也就是他的教程说的${path2},然后用添加了jvm参数的启动项目命令来启动才能连接。记得添加服务器的开放端口

yum指定版本安装出现问题

我开始的时候想着用yum指定版本我就可以方便快捷的安装到181版本了,后来我发现yum给我下载回来一个只有18kb的tar.gz,根本解压不了。踩坑+1.

添加jvm参数的问题

添加jvm参数的问题我遇到的最多,坑都踩了一遍:

  • 添加jvm参数添加在-jar后面的天才就是我
  • 不指定hostname会出现重定向到服务器私网ip然后timeout的现象
完整且正确的启动项目命令
nohup java -XXaltjvm=dcevm -javaagent:HotSecondsServer.jar的所在位置=hotconf=hot-seconds-remote.xml的所在位置 -Djava.rmi.server.hostname=你服务器的公网ip -jar 项目的jar包 > outjava.txt &

下面是一个例子

nohup java -XXaltjvm=dcevm -javaagent:/usr/local/hotdeploy/HotSecondsServer.jar=hotconf=/www/newer/hot-seconds-remote.xml -Djava.rmi.server.hostname=82.13.82.13 -jar springboot.jar > outjava.txt &
热部署不生效

这个问题是我最头痛的,困扰了我很久。场景是这样的: 我在配置好,连接成功,且无任何报错下开始热部署。我修改代码为swagger的文档,想通过热部署直接同步文档给前端看,但是发现热部署之后的文档依然没有变化。

我拉取更新版本之后的代码,发现热部署到那边报错,类找不到的异常

我新增接口热部署过去,发现浏览器访问不了,返回403,怀疑没有热部署成功。当然由于项目中应用了springsercurity,所以403也可能是由于springsercurity没开放地址,所以我重新添加了地址热部署过去,发现还是403.

不生效原因解析:热部署对于配置类和swagger是不支持的,还要写刷新逻辑。至于怎么写,我研究一下,到时再写博客。热部署的pom.xml如果更新了,依赖似乎还没能导入,所以会产生找不到类的情况。

总结功能
  • hotseconds的限制
    这个热部署插件还是挺有用的,但只是适合一些不用修改swagger文档,还有配置类的应用场景。比如代码的小规模修改,临时增删简单方法。对于一些框架的适配还要自己去写一些刷新逻辑到代码中,不然就会不生效。

暂时就体验到这里,后面我还会更新一些使用技巧和使用的限制,欢迎收藏观看和评论补充!!!

  • 17
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值