Springboot在idea中使用devtools熱部署配置不生效的解決辦法

年輕的心發表於2018-07-13

    開發中,每次對類的修改,都需要重啟服務,很浪費時間,影響效率。下面介紹一種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


         2)按快捷鍵Ctrl+Shift+Alt+/,選擇1.Registry...

         3)勾選 compiler.automake.allow.when.app.running 即可

 

 最後再推薦一篇介紹DevTools的博文,https://blog.csdn.net/isea533/article/details/70495714

相關文章