我用JETTY作为web 容器,用Spring MVC框架开发网站。

修改Spring bean,比如Controller Service,是无法自动热部署的,比如重新启动,加载才行。请问这种情况下,如何进行热部署,减少启动次数,提高开发效率。

回答:热部署跟开发工具和中间件服务器有关系,跟框架又没关系,比如说eclipse支持tomcat和weblogic的热部署,但是IntelliJ IDEA就不支持.....

要想实现IDEA 的热部署,需要加插件:jrebel。具体方法如下:

IntelliJ+Maven+Jetty+Jrebel实现web项目java代码更改后热部署:

IntelliJ+Maven+Jetty+Jrebel实现web项目java代码更改后热部署

环境准备:

IntelliJ IDEA 11.1.3

Maven 3.0.4

Jetty-maven-plugin 8.1.7.v20120910

Jrebel Plugin v1.5.2

 

1. 安装maven 3.0.4

请参考网上安装教程。

2. 安装IntelliJ IDEA 11.1.3

请参考网上安装教程。

3. 安装Jrebel Plugin v1.5.2

3.1. 打开Intellij IDEA Settings对话框,点击Browse repositories…

 

 

3.2. 在左边插件列表中选择JRebel Plugin , 我安装的是v1.5.2版本,以下图片是网上截图,一定要选择1.5.0+,后面会用到JRebel 5.0的破解包。

 

3.3. 下载并安装JRebel Plugin v1.5.2插件

 

3.4. 安装完后会要求你重启Intellij IDEA,你就重启好了。

 

3.5. 重启后,验证是否安装成功。在项目上点击鼠标右键,出现的菜单中有JRebel则代表安装成功。

 

菜单栏显示,如果要实现热部署必须以红框内的方式运行。

 

3.6. 接下来替换插件自带的jrebel.jar,从网上下载jrebel5破解版的包【原因是jrebel是收费的】,给几个下载地址

http://download.csdn.net/download/dengqianyong/4473522

http://langyahuashi.iteye.com/blog/1589821

用下载的jrebel5破解版替换C:\Users\Administrator\.IntelliJIdea11\config\plugins\jr-ide-idea\lib\jrebel目录下的jrebel.jar文件

并删除C:\Users\Administrator\.jrebel目录下的所有内容

3.7. 一定要选择红框中的其中一个运行,这样才能达到热部署的目的

 

 

4. 用maven插件[jetty-maven-plugin]运行web项目

 

运行配置参数如下:

 

5. 一切准备就绪就来测试下吧。

5.1. 添加一个servlet

 

 

5.2. 要想监控class和jsp文件改动必须在和pom.xml文件同目录下生成rebel.xml文件

生成方式如图:

在项目上点鼠标右键,弹出菜单,选择Generate rebel.xml(生成rebel.xml文件)

 

生成的文件内容一定要是这样的哦

 

代表

监控F:/IdeaProjects/test/target/classess下的类文件改动

监控F:/IdeaProjects/test/src/main/webapp下的web文件改动

更强的是Jrebel还可以监控spring配置文件的更改哦。

5.3. 测试热部署 

一切就绪可以运行了

 

第一个是用jrebel运行,第二个是用jrebel debug运行,相当于前两个运行方式,只不过这里比前两个运行方式更强。

5.4. 项目运行起来后改动类文件并不会立即看到效果,需要对类进行手动编译

要知道jrebel监控的是F:/IdeaProjects/test/target/classess下的文件哦,所以只要改动的类编译过后就可以监控到了

执行编译快捷键是:

ctrl+shift+F9编译单个类

ctrl+F9 编译整个项目

 

执行编译快捷键后,刷新浏览器

 

控制台输入内容:

JRebel: Reloading class 'com.test.view.servlet.HelloWorld'.

6. 参考链接

http://langyahuashi.iteye.com/blog/1630032

http://zeroturnaround.com/software/jrebel/download/using-jrebel-with-intellij/

http://flurdy.com/docs/intellij/

 

附件内是相关文档,里面有图文说明。




Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐