之前用eclipse开发,前端页面,js,css,刷新页面都能实时加载,换到idea每次都要重启服务,非常麻烦,心想idea是eclipse之后才出的,这点功能不能没有吧,于是查资料:
============分割线==============
(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,网上下了好多都不好用,果断放弃了)
激活步骤:首先:用twiiter或者facebook关联登录https://my.jrebel.com这个网站(没有twiiter或者facebook的话就注册一个吧,毕竟可以了解一下国内你不知道的东西)
点击“install and Activate”就会有激活码:
将激活码复制到IDEA->help->jrebel->activation->activation code里面就可以了:
大功告成。
开始配置jrebel:
view ->tool windows ->jrebel,在需要热部署的项目上选中,这时候会在你的跟目录中生成一个rebel.xml文件,这个是jrebel的配置文件,需要是配置jrebel的监听目录的。
已经配置完成。可以实现热部署了。
下一次研究一下jrebel对远程服务器代码的热部署。