布景

在java开发中咱们经常会遇到这样的场景,代码需求在服务器上(测试或许沙箱)运行,可是每次修正代码咱们都需求经历打包->布置->发动等一些列的流程,这一套流程下来短则几分钟,长则几十分钟都有或许,绵长的打包流程浪费了咱们大量的芳华,市道上有很多java热布置的插件,要么是只能修正办法体而不能新增字段和办法,要么就是只能在本地热布置,自己也是在工作中布置浪费了很多的芳华,于是我痛定思痛,决定写一款长途热布置插件来节省时间,现将该插件HotSeconds分享给咱们,希望能给咱们带来帮助。

运用场景

  1. IDEA本地修正代码直接一键化热布置到长途服务器,只需求几秒钟。
  2. 支撑修正代码块,新增字段,新增办法,新增类。
  3. 支撑一些开源框架比方Spring, SpringMVC和MyBatis。 比方新增一个@Autorwired字段或许新增MyBatis的接口或许修正.xml也是能够支撑热布置的。
  4. 最重要的一点,能支撑扩展,比方公司内部的框架,或许一些新出的第三方框架,我需求在热布置文件后履行一些改写缓存或许上下文的操作,也能自定义。

有了上述特色,开发功率至少能够提升100倍,不过光是热布置改bug还远远不是本插件的方针,那只是牛刀小试,我的方针是在线开发,长途服务器就是你的履行端,而本地,仅仅是一个写代码端。

运用演示

安装完插件后,Debug旁边有一个按钮,翻开或许封闭衔接长途

IDEA一键远程热部署插件(吊打市面插件)

高版别的IDEA能够点Run->HotSeconds Start/Stop翻开和封闭。

初次翻开会弹出装备选项,能够装备本地哪些目录下的文件上传到长途。

IDEA一键远程热部署插件(吊打市面插件)

咱们来演示一个SpringMVC的代码热布置

原来代码长这样

@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

IDEA一键远程热部署插件(吊打市面插件)

然后就能把代码热布置到长途,改写浏览器页面,代码就生效了。

IDEA一键远程热部署插件(吊打市面插件)

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

IDEA一键远程热部署插件(吊打市面插件)

右键热布置一下,改写网页能够看到成果

IDEA一键远程热部署插件(吊打市面插件)

咱们对UserMapperXml.xml修正一下Mybatis代码

IDEA一键远程热部署插件(吊打市面插件)

履行右键热布置改写网页就能看到成果

IDEA一键远程热部署插件(吊打市面插件)

长途编译并热布置

右键菜单下有长途编译并热布置的功用,主要是处理本地和长途jdk版别不一致的问题,请保证长途服务器运行用的是jdk而不是jre,如果是jre则不能编译。

IDEA一键远程热部署插件(吊打市面插件)

热布置jar包和jar包内的.class

翻开一个jar包的.class,右键,能够看到两个选项,能够将当时的.class热布置到长途,也能够将整个jar包热布置到长途。

IDEA一键远程热部署插件(吊打市面插件)

主动热布置

在Run->HotSeconds Settings->Settings中能够设置主动热布置,只需本地文件修正了就会主动热布置到长途。

IDEA一键远程热部署插件(吊打市面插件)

长途履行办法

附带了一个十分强大的功用,长途履行静态无参办法

IDEA一键远程热部署插件(吊打市面插件)

这样能够不用写接口就能够直接履行长途的函数,能够在这个函数里面调用一些有参数或许非静态的办法,中间需求比方Spring容器上下文自己去维护即可,十分便利。

IDEA一键远程热部署插件(吊打市面插件)

安装文档

本插件分为HotSecondsClient和HotSecondsServer,请点击下面文档检查具体的安装教程。

安装文档入口