idea编译即时生效配置 temp[临时开放]
IDEA修改java源码不用重启直接生效配置
参考 : IDEA SpringBoot 热部署+html修改无需make自动刷新==>https://my.oschina.net/yejunxi/blog/845752
spring boot热部署,修改java代码不重启==>https://blog.csdn.net/lmx125254/article/details/81477664
1. 给项目的pom.xml添加spring-boot-devtools插件依赖
<!-- springboot热布署工具 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <scope>true</scope> <!-- 这个需要为 true 热部署才有效 ,另外虽然虚拟机重启快很多,但是看到日志打印还是很不爽, 可以在application.yml或application.properties中配置spring.devtools.restart.enabled=false让修改java代码不重启也也直接生效. --> <optional>true</optional> </dependency> <build> <plugins> <!-- 这个插件,可以将应用打包成一个可执行的jar包,如果不添加该插件 ,则执行时报错: .\springbootdemo-0.0.1-SNAPSHOT.jar中没有主清单属性 --> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <mainClass>com.example.demo.MySpringBootApplication</mainClass> <fork>true</fork> <!-- 如果没有该配置,devtools可能不会生效 --> </configuration> </plugin> </plugins> </build>
在idea中建springboot初始化项目时也可以直接选中
2. File | Settings | Build, Execution, Deployment | Compiler | Build project automatically 打勾
另外建议开启自动导包功能 File | Settings | Editor | General | Auto Import | Insert imports on paste All
其实上面的操作就是就是项目刚建立时, idea弹出的 Enable Auto-Import ,所以一开始要是没有选择, 也可以手动去开启自动编译 , 当然前提是那个Show import popup
3. Shift+Ctrl+Alt+/ 启用 compiler.automake.allow.when.app.running
4.application.properties中配置
# 在pom.xml中添加spring-boot-devtools后,配置修改java代码不重启也生效 spring.devtools.restart.enabled=false #设置重启的目录,添加那个目录的文件需要restart spring.devtools.restart.additional-paths=src/main/java #排除那个目录的文件不需要restart #spring.devtools.restart.exclude=static/**,public/**
5. IDEA修改文件直接自动更新
右上角 Edit Configurations... | On 'Update' action 和 On frame deactivation | 都改成 Update classes and resources
经过亲测, 发现On frame deactivation 改成 Update classes and resources才真正有效,所以修改java代码真正编译的触发时机在切换到非IDEA应用时,
而此时如果你的操作过快 ,可能尚未编辑完全 ,还会是原来的代码 , 导致你以为修改未生效。
也就是说切换到浏览器后不建议马上操作, 最好隔2秒左右让IDEA 编译一下java源码, 当然如果手动按CTRL+F9的话, 那就没有任何问题了。
而On 'Update' action 在配成 Update classes and resources后 ,修改java源文件还是不能重动编译, 只有静态资源文件有效果 , 按道理手动CTRL + S 后就触发编辑才是完美状态 , 但事实并非如此 。
(当然以上现象有可能仅是个人电脑现象, 不代表众生相)
6. 根据上述5步操作, 在eclipse中只需要1 pom.xml配置 和 4 devtool属性配置成false就行了,已亲测验证,不过不要忘了eclipse中Project Build Automatically 下面这个勾可得打卡, 当然这只是额外补充,一般没有傻子会把它取消掉。