Redian新闻
>
Java远程热部署插件 - 吊打市面插件

Java远程热部署插件 - 吊打市面插件

公众号新闻

来源 | OSCHINA 社区

作者 | 抽刀断水-鹰影

原文链接:https://my.oschina.net/u/3276866/blog/10091251

背景

在 java 开发中我们经常会遇到这样的场景,代码需要在服务器上(测试或者沙箱)运行,但是每次修改代码我们都需要经历打包 -> 部署 -> 启动等一些列的流程,这一套流程下来短则几分钟,长则几十分钟都有可能,漫长的打包流程浪费了我们大量的青春,市面上有很多 java 热部署的插件,要么是只能修改方法体而不能新增字段和方法,要么就是只能在本地热部署,本人也是在工作中部署浪费了无数的青春,于是我痛定思痛,决定写一款远程热部署插件来提高效率,现将该插件 HotSeconds 分享给大家 (本插件分为 HotSecondsClient 和 HotSecondsServer),希望能给大家带来帮助。

使用场景

  • IDEA 本地修改代码直接一键化热部署到远程服务器,只需要几秒钟。

  • 支持修改代码块,新增字段,新增方法,新增类。

  • 支持一些开源框架比如 Spring, SpringMVC 和 MyBatis。比如新增一个 @Autorwired 字段或者新增 MyBatis 的接口或者修改.xml 也是可以支持热部署的。

  • 最重要的一点,能支持自由扩展,比如公司内部的框架,或者一些新出的第三方框架,需要在热部署文件后执行一些刷新缓存或者上下文的操作,也能自定义。

    有了上述特点,部署效率至少可以提升 100 倍,不过光是热部署改 bug 还远远不是本插件的目标,那只是牛刀小试,我的目标是在线开发,远程服务器就是你的执行端,而本地,仅仅是一个写代码端。

使用演示

安装完插件后,Debug 旁边有一个按钮,打开或者关闭连接远程

高版本的 IDEA 可以点 Run->HotSeconds Start/Stop 打开和关闭。

首次打开会弹出配置选项,可以配置本地哪些目录下的文件上传到远程。

热部署演示

原来代码长这样

@Controller
@RequestMapping("/view")
public class HelloViewController {

@RequestMapping("/test")
@ResponseBody
public String test() {
return "hello,test";
}
}

 我们修改代码为

@Controller
@RequestMapping("/view")
public class HelloViewController {

@RequestMapping("/test")
@ResponseBody
public String test() {
return "hello,"+name();
}

private String name(){
return "Tom";
}
}

 右键,选中 Hot swap this file to remote

 然后就能把代码热部署到远程,刷新浏览器页面,代码就生效了。

 我们接着新增一个注入的字段和 controller

 右键热部署一下,刷新网页可以看到结果

我们对 UserMapperXml.xml 修改一下 Mybatis 代码

执行右键热部署刷新网页就能看到结果

 远程编译并热部署

右键菜单下有远程编译并热部署的功能,主要是解决本地和远程 jdk 版本不一致的问题,已兼容 jre 启动问题和 lombok。

热部署 jar 包和 jar 包内的.class

打开一个 jar 包的.class,右键,可以看到两个选项,可以将当前的.class 热部署到远程,也可以将整个 jar 包热部署到远程。

自动热部署

在 Run->HotSeconds Settings->Settings 中可以设置自动热部署,只要本地文件修改了就会自动热部署到远程。
改完记得保存一下 (ctrl+s/command+s),不然会有延迟

远程执行方法

附带了一个非常强大的功能,远程执行静态无参方法

这样可以不用写接口就可以直接执行远程的函数,可以在这个函数里面调用一些有参数或者非静态的方法,中间需要比如 Spring 容器上下文自己去维护即可,非常方便。

安装文档

本插件分为 HotSecondsClient 和 HotSecondsServer,请点击下面文档查看详细的安装教程。

安装文档链接:https://github.com/thanple/HotSecondsIDEA/blob/master/install/%E4%BD%BF%E7%94%A8%E6%96%87%E6%A1%A3.md


往期推荐



鸿蒙 PC 版系统或将问世
深度deepin-IDE正式亮相,号称 “真正自主研发”
Linus又发飙,什么TM的叫"GenPD"



这里有最新开源资讯、软件更新、技术干货等内容

点这里 ↓↓↓ 记得 关注✔ 标星⭐ 哦


微信扫码关注该文公众号作者

戳这里提交新闻线索和高质量文章给我们。
相关阅读
乌海市面积占内蒙古的0.15%,为何能成地级市?无心去爱最新百强县!这些县城,“吊打”一众省会年销量超4亿!莫小仙快手城市面食登陆北美:肥汁米线、上海葱油拌面、重庆小面、 油泼面、热干面.....吊打!美国COSTCO品牌衣服白菜价,衬衫 短袖 休闲裤 阿甘鞋,今天又一大波上新对话沈抖:今天市面上有很多大模型,但大部分会迅速消失聊聊男人的能耐富养的王诗龄&吊打985 硕士的海淀小学生:教育的本质是拼爹?T工作室《马里奥进化桶》:市面上最精彩的马里奥雕像!指增超额扑街的一周,量化依然吊打主观?免税城手表比市面还贵一半?已退货退款工程热化学:推进“碳中和”宏大工程的重要科学英伟达或吊打AMD!预计独霸AI芯片市场90%的份额大妈手痒"捏爆超市面包"!下场惨了......当场被警逮捕税务合规要求趋严 — 境内企业境外上市面临的7号公告风险变局99%的人都没吃过!更鲜美的鹿肉,为什么市面上少见?最新研究!效果吊打贵妇精华!做这件事就可让你皮肤更年轻!10人俩月搞出大模型!一年16篇顶会论文加持:市面上做得好的都没有开源原本上越战前线的,却掉包上了京都大学,最后到乌有当了人家后爸市面上坚果的花样越来越多,到底哪种值得买?这档坚持30年最终停播的歌唱比赛,吊打现在所有选秀浅谈加拿大的护理专业教育盘点市面上的“原版教材”,我劝你这几套千万别选!三线小城,何以“吊打”一众万亿强市?我喜欢的文章我转发冲9分!好看到词穷!吊打《消失的她》,这才是真女性主义!警员即将涨薪11%! 原因竟是洛市面临了这些危机..00后实习生Rhino建模吊打所有人?只因偷偷用了这120套电池组!(附电磁组下载)市面流行这类非处方药,一半美国人买了!FDA: 它们无效!通便药最近也被疯抢债市面临多重压力,基金经理这样迎战飘带束腰裤,“吊打”你的衣橱~画质吊打上一代,大疆今晚发布的Osmo Action 4都升级了些啥?开学在即 纽约市面临校车司机大罢工 或影响15万学生笑死,Angelababy新剧被她吊打!市面目前唯一含死海矿物质的芦荟胶
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。