[IDEA]通过JRebel进行远程热部署

通过JRebel进行远程热部署

本文中使用的IDE为IDEA,版本IntelliJ IDEA 2017.1.6,JRebel版本为7.1.6。其他版本的使用和配置情况可能有所差异,请大家注意。

IDEA中进行基本配置

  1. 首先在IDEA中打开JRebel的配置页面,如下图:
    [IDEA]通过JRebel进行远程热部署_第1张图片
  2. 点开以后可以看到如下图显示的配置:
    [IDEA]通过JRebel进行远程热部署_第2张图片
  3. 选择目标环境如下图,这里我们以tomcat作为容器为例,其他的类似:
    [IDEA]通过JRebel进行远程热部署_第3张图片
  4. 这里我们可以看到,插件已经很好的提示了该如何在服务器侧进行配置以方便使用JRebel。
    [IDEA]通过JRebel进行远程热部署_第4张图片

服务端配置

  1. 按照步骤一步一步来,这里可以复制命令:
    [IDEA]通过JRebel进行远程热部署_第5张图片
    提示:第一个这里的JRebel服务端需要的文件,本人实验时候,下载龟速,挂上代理直接起飞。可以现在本地下好,直接上传服务器。如下图:
    [IDEA]通过JRebel进行远程热部署_第6张图片
    上传、解压后的状态:
    [IDEA]通过JRebel进行远程热部署_第7张图片
    蓝色文件夹中的文件就是服务端需要的文件了。
  2. 首先,进入tomcat目录中,具体看服务器环境,然后在bin下创建启动脚本:
    [IDEA]通过JRebel进行远程热部署_第8张图片
    将之前步骤提示的脚本内容粘贴进去:
    JRebel服务端启动脚本自定义的部分
    注意:上图中两个圈起来的地方,第一个是之前jrebel-stable-nosetup.zip文件解压的目录,后边的配置是jrebel服务监听的端口号。然后保存文件退出。别忘了给文件加执行权限,同时确保catalina.sh也有可执行权限:
    添加可执行权限
  3. 运行脚本启动程序./catalina-jrebel.sh start

项目文件配置

  1. 点击这个链接查看项目文件的配置说明(同样得挂代理,否则龟速),里面详细说明了不同的项目应该如何配置项目中的文件,从而使用JRebel远程热部署。:
    [IDEA]通过JRebel进行远程热部署_第9张图片
  2. 具体配置细节感兴趣的可以详细查看,这里直接找到针对gradle项目中配置有多个子模块的场景进行的配置,可以最大程度满足项目的需求,如下图:
    [IDEA]通过JRebel进行远程热部署_第10张图片
    懒得自己看的同学可以直接拿走,添加到根目录下的build.gradle文件中即可。改配置中会针对子模块里面的jarwar任务自动执行前置任务,从而在jar包和war包中生成jrebel需要的xml配置文件。如果生产环境中不希望存在该文件可以另行处理。

    buildscript {
      repositories {
        mavenCentral()
      }
      dependencies {
        classpath "org.zeroturnaround:gradle-jrebel-plugin:1.1.7"
      }
    }
    allprojects { project ->
      plugins.withId('java') {
        project.apply plugin: 'org.zeroturnaround.gradle.jrebel'
        def jarTask = project.tasks.findByName('jar')
        if (jarTask) {
            jarTask.dependsOn(generateRebel)
        }
        def warTask = project.tasks.findByName('war')
        if (warTask) {
            warTask.dependsOn(generateRebel)
        }
      }
    }
  3. 上边配置好了以后,回到JRebel的配置页,找到远程服务器配置的标签:
    [IDEA]通过JRebel进行远程热部署_第11张图片
    添加一个远程服务器,其中Server name为项目名称,对应到webapps中的文件夹,即XXX.war中的XXXServer URL*对应的是服务器的IP和端口号。如果设置类JRebel服务端认证,需要勾选Server authentication,并输入密码。使用下面的命令可以设置JRebel服务端的密码。

    java -jar jrebel.jar -set-remote-password <NewPassword>

    如果HTTP的服务需要认证,即tomcat设置了访问密码,需要勾选HTTP Basic authentication,并对应输入用户名、密码。
    [IDEA]通过JRebel进行远程热部署_第12张图片

  4. 上边的都搞好了,基本就成功了。首先需要使用gradle中的war任务将war包打好,放到服务器的tomcat目录下的webapp中。然后找到JRebel配置的项目栏,如下图:
    [IDEA]通过JRebel进行远程热部署_第13张图片
    选中要进行热部署的项目,打上勾。
    [IDEA]通过JRebel进行远程热部署_第14张图片
    点击按钮将最新的文件推送到服务端。
    文件推送到服务端

远程调试

待补充

你可能感兴趣的:(IDEA)