本地开发环境设置为热部署,你学会了吗原创
金蝶云社区-小王king
小王king
14人赞赏了该文章 3,396次浏览 未经作者许可,禁止转载编辑于2022年01月25日 14:19:23

        你是否在开发时有这样的体验,编写完一个插件时,修改了一些代码,但是却没有立即生效,需要重新copytolib,然后重新启动,修改的代码才会生效,偶尔一两次还好,如果经常这样玩,人都要被搞崩溃了。

 

        有一个方法就可以解决这个问题,那就是热部署。什么是热部署呢?热部署就是正在运行的应用。修改了它的源码之后,在不重新启动的情况下,可以把修改的内容编译,实现运行时更新class文件。

 

        下面介绍一下,在苍穹本地开发环境,怎么实现热部署方式。

 

        第一步,在debug-bos-mservice 中添加类: kd.bos.HotSwapClassManager 和 kd.bos.dataentity.TypesContainer,将附件中的bos.rar解压到kd_bos\bos\debug-bos-mservice\src\main\java\kd\bos即可。

 image.png


 

        第二步,在启动类main函数里设置监控的路径和热部署的jar包

 

        HotSwapClassManager.getInstance().startWatch("C:\\bos-evn-dev\\mservice\\lib\\bos"); //需要启动热替换的jar包可以写多个,用逗号隔开 HotSwapClassManager.getInstance().enableHotSwap("bos-devportal-new-plugin-1.0.jar");

 image.png

        要设置某一个类为热部署,将jar包名在参数里加上即可

 

        第三步,在上一步设置好的工程里修改代码之后,点击工程对应的copytolib,就可以实现更新代码了,不用重新启动工程,这样就实现了热部署。值得注意的是,想bos-form-mvc这些比较底层的包,是不能被替换的,否则容易出现问题。

 image.png


         看到这里是不是很心动呢,赶快去试试吧!代码文件在附件!!!

赞 14