在eclipse中安装插件JRebel进行热部署以及遇到的问题解决方案(下面主要是maven+ssh项目进行热部署)

时间:2024-03-15 14:25:57

一.热部署的需求:每次代码之后都要重新启动,JRebel插件就可以解决这个问题。

二.热部署介绍

1、热部署与热加载
在应用运行的时候升级软件,无需重新启动的方式有两种,热部署和热加载。
它们之间的区别是:
(1)、部署方式: 
热部署在服务器运行时重新部署项目。
热加载在运行时重新加载class。
(2)、实现原理
热部署直接重新加载整个应用,这种方式会释放内存,比热加载更加干净,但是它比热加载更加的浪费时间。
热加载在运行时重新加载class,主要使用的是类加载机制,在实现方式上就是在容器启动的时候起一条后台线程,定时的检测类文件的时间戳变化,如果类的时间戳发生变化,则将类重新载入。
(3)、使用场景
热部署更多的是在生产环境中使用,就是适用于频繁的部署并且启动耗时长的应用、无法停止服务的应用等。
热加载则更多的是在开发环境中使用,用于开发,debug中,可以大大的提高开发效率。
2、热加载的应用:
struts2中的热加载应用:
在struts2中热加载即开发者模式,在struts.xml配置
<constant name="struts.devMode" value="true" />
这是开启开发者模式,每次更改代码不需要重启服务器就可以进行调试。

三.在eclipse安装插件JRebel进行热部署

1.eclipse菜单选择Help -> Eclipse Marketplace 打开弹窗,输入JRebel,点击搜索。

在eclipse中安装插件JRebel进行热部署以及遇到的问题解决方案(下面主要是maven+ssh项目进行热部署)

2.点击Installed按钮下载安装JRebel插件,后面按照提示一步步操作,到最后会提示是否重启eclipse,

点同意按钮,eclipse重启后,JRebel功能就可以用了。

3.还是点击Help,会发现里面多了JRebel选项,证明JRebel已经安装成功了,这时候还不能用,需要

注册license,提供注册地址:http://139.199.89.239:1008/88414687-3b91-4286-89ba-2dc813b107ce。

4.选择Help -> JRebel -> Activation打开窗口,选择I already have a license选项卡,选中选项

Connect to online licensing service,第一个输入框输入以上注册地址,第二个输入框输入个人

邮箱地址即可,点击下面Change license按钮即可完成注册并关闭窗口。

在eclipse中安装插件JRebel进行热部署以及遇到的问题解决方案(下面主要是maven+ssh项目进行热部署)

5.选择Help -> JRebel -> Configuration打开窗口,可以发现默认选项卡Overview里已经有刚才注册的license信息了。在Time Saved Statistics部分可以设置扫描频率。

在eclipse中安装插件JRebel进行热部署以及遇到的问题解决方案(下面主要是maven+ssh项目进行热部署)

6.选择Startup选项卡,选中单选框Run via IDE,Servers下在用到的Tomcat服务器左边打勾。

在eclipse中安装插件JRebel进行热部署以及遇到的问题解决方案(下面主要是maven+ssh项目进行热部署)

7.选择Projects选项卡,在表格里需要启动的项目后面打勾。

在eclipse中安装插件JRebel进行热部署以及遇到的问题解决方案(下面主要是maven+ssh项目进行热部署)

8.点击eclipse工作空间里的项目,可以在resource目录下面发现一个rebel.xml文件,里面是JRebel的配置参数。

四.Maven的tomcat插件配合JRebel的设置步骤

1.在pom.xml中<build></build>标签下的<plugins>标签里添加tomcat插件以及jrebel插件:

<!-- maven的tomcat组件,通过maven命令tomcat7:run运行项目 -->
<plugin>
  <groupId>org.apache.tomcat.maven</groupId>
  <artifactId>tomcat7-maven-plugin</artifactId>
  <version>2.2</version>
  <configuration>
    <port>8080</port>
    <path>/Irritability</path>
  </configuration>
</plugin>

<!-- jrebel热部署插件 -->
<plugin>
  <groupId>org.zeroturnaround</groupId>
  <artifactId>jrebel-maven-plugin</artifactId>
  <version>1.1.8</version>
  <executions>
    <execution>
    <id>generate-rebel-xml</id>
    <phase>process-resources</phase>
    <goals>
      <goal>generate</goal>
    </goals>
    </execution>
  </executions>
</plugin>

2.在JRebel下启动maven项目步骤

选中项目点击右键-->Run As-->Maven build...:

 在eclipse中安装插件JRebel进行热部署以及遇到的问题解决方案(下面主要是maven+ssh项目进行热部署)

按照图中步骤设置后点击Run按钮运行项目:

 在eclipse中安装插件JRebel进行热部署以及遇到的问题解决方案(下面主要是maven+ssh项目进行热部署)

在eclipse中安装插件JRebel进行热部署以及遇到的问题解决方案(下面主要是maven+ssh项目进行热部署)

如下图所示,说明启动成功

在eclipse中安装插件JRebel进行热部署以及遇到的问题解决方案(下面主要是maven+ssh项目进行热部署)

四.按照上面可能出现的错误

1.如下错误,找不到Jar包的绝对路径

在eclipse中安装插件JRebel进行热部署以及遇到的问题解决方案(下面主要是maven+ssh项目进行热部署)

解决:打开JRebel Configuration,选中Advanced,然后在JRebel Agent下选择Other jrebel.jar,导入jar包的路径(即下载时的位置,如果通过上述方法下载的,那么jar包在eclipse下),如图所示:

在eclipse中安装插件JRebel进行热部署以及遇到的问题解决方案(下面主要是maven+ssh项目进行热部署)

2.出现Exception in thread ""http-bio-80"exec-1" java.lang.OutOfMemoryError: PermGen s的异常(内存溢出)。

内存溢出解决方法是扩大设置的内存,步骤如下:

Windows-->Preferences-->Java-->Installed JREs右侧-->Edit...

在eclipse中安装插件JRebel进行热部署以及遇到的问题解决方案(下面主要是maven+ssh项目进行热部署)

在 Default VM arguments中写入

-Xms512M -Xmx1024M -XX:PermSize=256m -XX:MaxPermSize=768m

,随后重启项目即可正常使用JRebel热部署项目了。

在eclipse中安装插件JRebel进行热部署以及遇到的问题解决方案(下面主要是maven+ssh项目进行热部署)

五.官网链接

https://jrebel.com/software/jrebel/quickstart/eclipse/