(1)idea自带的热部署:
首选要把发布模式改成exploded模式而不是war模式,这点大家非常容易忽略(请查看下面动图)
这里简单说一下exploded和war模式的区别:
war模式:idea每次重启之后,都会将工程打成一个war包,在targert目录下有,在将这个war推到tomcat(或其他服务器)下,而exploded模式是将编译好的文件的位置关系推到服务器上,这个模式下,target下面是没有生成的war包,可以通过简单的代码来看他们之间的却别:
首先是exploded模式下:获取上下文路径:就是该项目所在的target所在的路径
war模式下:得到的上下文路径是:tomcat所在的webapps下面的工程路径
现在很好理解,war模式为什么不能实现热部署了吧。
现在在说一下exlpoded模式下如何实现简单的热部署:
将 on update action 和 on frame decactivation 都设置成update classes and resources(war模式下是没有update classes and resources这个选项的),这样设置已经完成了,只要焦点失去当前界面的情况下,idea就是自动编译
如果只是前端代码的热部署,启动方式run和debug模式都可以,如果是java也想热部署的话,只有debug模式启动才可以,而且这种方式添加/删除方法和给方法添加/删除参数都是不能自行完成热部署的。
(2)Jrebel 热部署
首先就是下载jrebel,在idea的plugins搜索jrebel
直接安装就好了。重启idea,在help里面能看到jrebel说明安装好了:
接下来就是最重要的激活了。我用的是activation code的方式激活的(驱动激活的方式需要jrebel.lic,网上下了好多都不好用,果断放弃了)【现在这个好像也不可行了,望大神们各显神通吧】
激活步骤:
到IDEA->help->jrebel->activation->Connect to online licensing service里面:
在第一行输入:
在第二行随便输入一个邮箱;
这样激活就大功告成。
开始配置jrebel:
view ->tool windows ->jrebel,在需要热部署的项目上选中,这时候会在你的跟目录中生成一个rebel.xml文件,这个是jrebel的配置文件,需要是配置jrebel的监听目录的。
已经配置完成。可以实现热部署了。