Springboot在idea中使用devtools热部署配置不生效的解决办法

时间:2024-03-15 18:34:28

    开发中,每次对类的修改,都需要重启服务,很浪费时间,影响效率。下面介绍一种springboot热部署的方法。
    1、在Maven的pom.xml文件中添加依赖

    <!-- 热部署 -->
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-devtools</artifactId>
      <!-- optional=true,依赖不会往下传递,如果有项目依赖本项目,并且想要使用devtools,需要重新引入 -->
      <optional>true</optional>
      <scope>true</scope>
    </dependency>

     2、继续在Maven的pom.xml文件中添加插件的配置

<build>
    <plugins>
      <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
        <configuration>
          <fork>true</fork><!-- 如果没有该配置,热部署的devtools不生效 -->
        </configuration>
      </plugin>
      <!-- 自定义配置spring Boot使用的JDK版本 -->
      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
          <source>1.8</source>
          <target>1.8</target>
        </configuration>
      </plugin>
    </plugins>
</build>

    如果是Eclipse,配置到这里,只要重启服务,热部署就会生效了。

    但是IDEA的话,热部署还不会生效,因为devTools只会在类路径上的文件发生更改时才会自动重启,而IDEA默认不会自动编译。

    解决方法有两种:

    1、手动:修改完代码,按快捷键Ctrl+F9,手动构建项目,或者只修改单个类文件的话,按Ctrl+Shift+F9,重新编译该类文件,即可触发重启服务。

    2、自动:

        1)File -> Settings -> Compiler,勾选 Build Project automatically

Springboot在idea中使用devtools热部署配置不生效的解决办法
         2)按快捷键Ctrl+Shift+Alt+/,选择1.Registry...
Springboot在idea中使用devtools热部署配置不生效的解决办法
         3)勾选 compiler.automake.allow.when.app.running 即可
Springboot在idea中使用devtools热部署配置不生效的解决办法
 

 最后再推荐一篇介绍DevTools的博文,https://blog.csdn.net/isea533/article/details/70495714