我们在使用IDEA开发SpringBoot项目,在调试过程中,如果需要一些改动,比如添加一些Log信息或者修改某个变量的时候,普通情况下,我们需要重新打包然后再上传到服务器,再重新部署一下,非常麻烦,即便是一个小小的改动,整个流程都需要重新走一遍。好在IDEA和SpringBoot提供了远程调试和热部署的功能,我来简单介绍一下
- 编辑配置
- 入相关界面,然后再点击图中的“+”号,选择“Remote”选项
- 点击“Remote”后进入如下界面,相关选项的作用已经在图中标注了,设置完成点击“Apply”即可
- 再次点击如下位置,就会出现debug项目的名称,我这里命名为demo
在项目的pom.xml文件相应的位置添加如下代码,注意plugins中的代码,项目中可能已经存在,你只需要添加没有的部分即可 ```xml <?xml version=”1.0” encoding=”UTF-8”?> <project xmlns=”http://maven.apache.org/POM/4.0.0“
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<artifactId>demo-modules</artifactId>
<groupId>com.concise.demo</groupId>
<version>1.0.0</version>
4.0.0 demo-javacpp 8 8 <dependency>
<groupId>org.bytedeco</groupId>
<artifactId>javacpp</artifactId>
<version>1.5.7</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<!-- optional=true,依赖不会传递,该项目依赖devtools;之后依赖myboot项目的项目如果想要使用devtools,需要重新引入 -->
<optional>true</optional>
</dependency>
<dependency>
<groupId>com.concise</groupId>
<artifactId>component-web</artifactId>
</dependency>
</dependencies>
<build>
<finalName>demo-javacpp</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>${maven-compiler-plugin.version}</version>
<configuration>
<encoding>utf-8</encoding>
<source>${java.version}</source>
<target>${java.version}</target>
<annotationProcessorPaths>
<!-- 引入 mapstruct-processor -->
<path>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct-processor</artifactId>
<version>${mapstruct.version}</version>
</path>
<!-- 引入 lombok-processor -->
<path>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${lombok.version}</version>
</path>
</annotationProcessorPaths>
</configuration>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>${spring-boot.version}</version>
<configuration>
<!-- fork: 如果没有配置该项配置,devtools不会起作用的,即应用不会restear -->
<fork>true</fork>
<!-- 引入本地jar之后, 加入如下这行, maven才会打包进jar-->
<includeSystemScope>true</includeSystemScope>
<addResources>true</addResources>
<mainClass>com.concise.demo.javacpp.JavacppApplication</mainClass>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
6. 此时对项目进行打包,将jar文件上传至服务器。第一次还是需要将jar包上传的
7. 在服务器执行如下代码 注意:
1. address改成自己的端口
1. jar名称改成自己的jar包名称
```bash
java -Xdebug -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 -jar demo-javacpp.jar
成功后会有如下显示
- 在IDEA中选择debug项目,点击debug按钮,项目就在服务器运行了
:::warning
每次改变项目中的代码,一定要记得build一下, 这样服务器端的jar会被热更新的
:::