Spring Boot 项目在 IntelliJ IDEA 中配置 DevTools 实现热部署(macOS 系统)
要配置的内容:
1.Preference -> Build, Execution, Deployment -> Complier -> Build project automatically --> 选中
2.command + option + shift + /(4个键)-> 查找Registry -> 找到并勾选:compiler.automake.allow.when.app.running
3.pom.xml文件中加maven依赖:spring-boot-devtools
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<!-- optional=true,依赖不会传递,该项目依赖devtools;之后依赖myboot项目的项目如果想要使用devtools,需要重新引入 -->
<optional>true</optional>
</dependency>
4.pom.xml文件中插件spring-boot-maven-plugin,配置上
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<!--fork : 如果没有该项配置devtools不会起作用,即应用不会restart -->
<fork>true</fork>
<!--支持静态文件热部署-->
<addResources>true</addResources>
</configuration>
</plugin>
5.Chrome禁用缓存:NetWork --> Disable Cache(while DevTools is open)
配置成功后,保存类路径上的文件,Spring Boot 应用会自动重启。
Spring DevTools 特点:
- 默认禁用缓存选项。
- 在类路径上的文件发生更改时自动重启。注意:某些资源(如静态资源和视图模板)不需要重启应用程序。
- 实时加载。
- 全局设置。
Spring DevTools 相关知识:
运行打包的应用程序时,开发人员工具会自动禁用。如果你通过 Java -jar或者其他特殊的类加载器进行启动时,都会被认为是“生产环境的应用”。
将依赖标记为optional可选是一种最佳做法,可以防止将devtools依赖传递到其他模块中。Gradle 不支持开箱即用的optional依赖项。