也说一说IDEA热部署Web项目最终解决方案,确实大大提高工作效率
热部署就是正在运行状态的应用,修改了它的源码之后,在不重新启动的情况下能够自动把增量内容编译并部署到服务器上,使得修改立即生效。热部署为了解决的问题有两个:
1、在开发的时候,修改代码后不需要重启应用就能看到效果,大大提升开发效率;
2、生产上运行的程序,可以在不停止运行的情况下进行升级,不影响用户使用。
此解决方案:主要是基于Spring Boot 构建的项目
1、添加依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
2、添加插件:注意如果提示在此处不应使用元素fork的提示。建议指定spring-boot-maven-plugin版本,版本跟你项目采用的springboot版本一致,建议一般放在父项目中即可。
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.3.12.RELEASE</version>
<configuration>
<fork>true</fork>
<addResources>true</addResources>
</configuration>
</plugin>
3、yml文件或属性文件中配置,开启热部署
#开发环境时修改静态资源没必要重启,可以在此设定目录多个间用,号隔开
spring.devtools.restart.enabled=true
spring.devtools.restart.additional-paths=src/main/java
spring.devtools.restart.exclude=static/**,public/**,db/**,i18n/**,templates/**
4、配置IDEA
5、注意如果项目采用的是thymeleaf,则需要关闭缓存:
spring.thymeleaf.cache=false
6、但实践证明,修改java文件是会自动构建,重载,但页面没效果,应用不需要关闭,页面必须要重新构建下就可以了。