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 后就触发编辑才是完美状态 , 但事实并非如此 。

(当然以上现象有可能仅是个人电脑现象, 不代表众生相)

 Idea--Tomcate配置中的On Upate Action 与 On Frame Deactivation==》https://www.cnblogs.com/zhangguangju/p/7027904.html

IDEA 服务器热部署详解(On Update action/On frame deactivation)==》https://blog.csdn.net/w15321271041/article/details/80597962

6. 根据上述5步操作, 在eclipse中只需要1 pom.xml配置 和 4 devtool属性配置成false就行了,已亲测验证,不过不要忘了eclipse中Project Build Automatically 下面这个勾可得打卡, 当然这只是额外补充,一般没有傻子会把它取消掉。

posted @ 2021-09-07 16:51  苦涩泪滴  阅读(667)  评论(0编辑  收藏  举报