最近使用SrpingBoot
和freemarker
搭建项目,发现freemarker文件更改后必须重新启动才生效,网上搜了很多教程,也按照教程设置了,发现还是不行,最后发现和idea版本也有关系,在这里写下具体的坑。
前面的步骤还是都相似的,只是最后一步idea
设置有区别。
第一步:pom
引入spring-boot-devtools
。
在xml
中加上以下内容:
<!--在dependencies增加--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <optional>true</optional> </dependency> <!--在build下的plugins增加,fork属性别忘记--> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <version>2.3.7.RELEASE</version> <configuration> <fork>true</fork> </configuration> </plugin>
第二步:application.properties
中设置禁止缓存。
这一步其实不用,springboot
默认spring.freemarker.cache
的值就是false
,当然写上也没问题。
第三步:修改IDEA中Complier
的自动构建属性。
第四步:修改Registy
,这一步不同版本IDEA不一样。
常见的是:点击 Help –> Find Action..,或使用快捷键 Ctrl+Shift+A来打开 Registry…,将其中的compiler.automake.allow.when.app.running
勾上。
如果你能找到这个选项,设置就没问题,但是我用的IDEA版本上并没有这个设置。
最后发现这个设置在高级设置里面。
这样设置以后,freemarkder
的热部署才真正生效,不过观察下来也有几秒钟的延迟吧。
好了,最后一步真的是个坑,希望帮助到你。