IDEA+Tomcat+JRebel热部署

在完成idea工程简单应用后,接下来实现热部署。

简单应用地址:http://wibiline.iteye.com/admin/blogs/2072454

一、安装JRebel插件

1. 在线安装

 File->setting或者直接点设置的图标进入


IDEA+Tomcat+JRebel热部署_第1张图片
 
IDEA+Tomcat+JRebel热部署_第2张图片
 在线下载并安装,安装的插件在C:\当前用户下\.jrebel 和.IntelliJIdea13

2. 破解插件

下载破解补丁具体要找到对应版本的,这边用的是5.5.2的破解版本(但实际安装的是5.5.3,照样可以使用)将破解版里面的jrebel.lic拷贝到C:\当前用户下\.jrebel 目录下;jrebel.jar替换C:\当前用户\.IntelliJIdea13\config\plugins\jr-ide-idea\lib目录下的jrebel.jar文件

打开idea后,看到jr图标就代表安装插件成功,还有在设置里面会多出Jrebel,如下:


IDEA+Tomcat+JRebel热部署_第3张图片
 License为valid就代表破解成功了。

二、部署项目工程的两种方式

方式一、结合Artifacts部署项目

1. 打开项目配置project structure


IDEA+Tomcat+JRebel热部署_第4张图片
 根据项目Modules配置Artificials

2. tomcat加载项目


IDEA+Tomcat+JRebel热部署_第5张图片
 然后填写应用名称,转到Server页签进行配置


IDEA+Tomcat+JRebel热部署_第6张图片
 两个地方都修改成Update classes and resource

3. 修改Jrebel参数


IDEA+Tomcat+JRebel热部署_第7张图片
 设置redeploy时间,这样修改java文件后,jre会自动监测到。(不过这样设置是否会很占内存?)后台会有提示信息,如:2014-05-29 19:13:12 JRebel: Reloading class 'MyServlet'.

经过这三步设置,一般就可以了。这样貌似连rebel.xml都不用生成,就可以实现热部署了。记得以jr方式启动tomcat(就是点那个jr图标了),而不是直接启动tomcat。

方式二、External Source加载项目工程

1. 修改class输出目录
IDEA+Tomcat+JRebel热部署_第8张图片
 
class文件输出到工程本身的WEB-INF目录下

2. tomcat加载项目
IDEA+Tomcat+JRebel热部署_第9张图片
 选择到web工程的根目录即WebRoot,这个目录直接包含工程本身的jsp、html等文件还有我们配置的class输出内容。这样jsp有修改就可以直接显示,而class就由jre监测。

注:用这种方式加载项目的,在server里面就没有Update classes and resource了

3.生产rebel.xml

右键项目,可以看到Jrebel选项,选择rebel.xml即可自动生成,xml主要内容是监测class目录和web工程目录

4. 设置idea自动编译
IDEA+Tomcat+JRebel热部署_第10张图片
 这4个步骤设置好,用jr启动tomcat就可以了。

 

总结:两种方式都是以tomcat目录下localhost的配置文件进行加载项目,配置文件里指定加载的路径。Artifacts方式的,class不仅要生成output,同时在Modules那边也会指定class的生成目录,感觉多生成了一份,没什么必要,不知道这样的好处在哪里,暂时不懂。而External Source加载项目工程的方式,直接在Modules指定class生成目录到本工程下,而jsp本身就是工程下面的,所以在tomcat的配置文件那边直接指定到工程目录下即可。所以个人暂时采用方式二进行处理,用一段时间试试。

遇到的问题:采用方式二部署项目的时候,tomcat启动,找不到工程的jar包,而工程明明有引入对应的jar包了。

问题原因:jar包目录lib跟web根目录同一级别,tomcat启动的时候无法加载到这个lib。虽然项目编译能通过,但发布的时候就会有问题。

问题解决:将lib目录放于WEB-INF目录下即可

你可能感兴趣的:(tomcat)