jrebel+idea 进行热部署配置

jrebel+idea 进行热部署配置

 

1、安装和激活jrebel这里不在叙说

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

第一:打开项目配置project structure    配置Artificials

第二:tomcat加载项目  然后填写应用名称,转到Server页签进行配置

配置Server相关参数

第三步:设置 Jrebel参数

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

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

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

第一:1. 修改class输出目录

第二、tomcat加载项目 

注意:选择到web工程的根目录即WebRoot,这个目录直接包含工程本身的jsp、html等文件还有我们配置的class输出内容。这样jsp有修改就可以直接显示,而class就由jre监测。

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

第三:.生产rebel.xml

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

第四:. 设置idea自动编译

这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目录下即可

原文地址:https://www.cnblogs.com/Jeely/p/12508625.html