当前位置: 首页 > 科技观察

Idea+Jrebel+Docker远程热部署+调试Javaweb项目

时间:2023-03-13 22:21:54 科技观察

创建一个Javaweb工程(也可以用Spring工程)添加tomcat运行插件,在pom.xml中添加如下内容org.apache。maven.pluginsmaven-compiler-plugin${project.build.sourceEncoding}org.apache.tomcat.maventomcat7-maven-plugin2.2/${project.artifactId}8086${project.build.sourceEncoding}http://localhost:8086/tomcat7org.apache.maven.pluginsmaven-resources-plugin2.6${project.build.sourceEncoding}加入tomcat插件后,第一次运行项目,直接使用tomcat7:run命令运行项目成功配置本地Jrebel热部署启用Jrebel本地热部署,验证是否生效Jrebel热部署成功配置远程Jrebel热部署部署容器使用Docker命令创建tomcat容器使用tomcat的镜像:7.0.94-jre8-alpine#在命令行输入如下命令:dockerpulltomcat:7.0.94-jre8-alpine#基于镜像创建容器镜像下载完成后,指定容器名为mytesttomcatdockerrun-d-it--namemytesttomcattomcat:7.0.94-jre8-alpine#进入容器dockerexec-itc444sh接下来跟着JRebel配置步骤进行配置,我们这里选择tomcat容器小编已经整理好了修改的内容,直接复制到Dockerfile文件中运行构建命令FROMtomcat:7.0.94-jre8-alpineRUNsed-i's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g'/etc/apk/repositoriesRUNapk添加curlWORKDIR/rootRUNcurl-Ohttp://dl.zeroturnaround.com/jrebel-stable-nosetup.zipRUN解压缩jrebel-stable-nosetup.zipRUNrmjrebel-stable-nosetup.zipWORKDIR/usr/local/tomcat/bin/RUNcpcatalina.shorg-catalina.shRUNecho'#!/bin/bash'>catalina.shRUNecho'exportREBEL_HOME="/root/jrebel"'>>catalina.shRUNecho'exportJAVA_OPTS="-agentpath:$REBEL_HOME/lib/libjrebel64.so-Drebel.remoting_plugin=true-Drebel.remoting_port=12345-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005$JAVA_OPTS"'>>catalina.shRUNecho'/usr/local/tomcat/bin/org-catalina.shrun'>>catalina.shEXPOSE8080EXPOSE12345EXPOSE5005ENTRYPOINTcatalina.sh也可以直接拉着拿小编做的镜像:dockerpulllishidongol/jcat7:idea-jrebel配置IDEA添加RemoteJVMDebug,调试端口和参数已经在构建远程Jr配置ebel热部署容器时,在根目录下添加一个Dockerfile文件,填写如下内容#使用lishidongol/jcat7:idea-jrebel作为基础镜像FROMlishidongol/jcat7:idea-jrebel#设置当前目录WORKDIR/usr/local/tomcat/webapps#复制项目内容到当前目录COPYtarget/Docker-Jrebel-Web./Docker-Jrebel-Web先打包一次,构建完成后确认目录名,添加Dockerfile运行配置配置容器名,绑定端口,运行前必要的动作添加预运行事件,重新打包一次在这里生成一个Jrebelremote.xml文件将生成的rebel-remote.xml复制到资源文件夹下下一步构建并运行容器刷新修改后的内容使用IDEA进行调试添加新的测试服务类在index.jsp页面调用IDEA连接远程JVM,然后进入断点调试。这意味着热部署成功!