Java项目修改了代码总是不生效咋么个事

1.问题发现

自己修改了yml配置文件,然后发现重启项目访问还是原来的配置
在这里插入图片描述
查看target下的class文件
在这里插入图片描述
发现,这个值并没有变,也就是我们修改完代码其实是没有触发编译文件重新生成class的,这时候我们可以手动解决,选择maven,执行maven compile命令,重新编译生成class文件即可,但是我不想每次都这样搞,太麻烦了

2.改,怎么让它重启项目的时候或者项目启动过程中重新编译加载变化的类嘞

开启idea热部署

一、开启IDEA的自动编译(静态)

具体步骤:打开顶部工具栏 File -> Settings -> Default Settings -> Build -> Compiler 然后勾选 Build project automatically 。
在这里插入图片描述
同时修改maven的Runner:
在这里插入图片描述

二、开启IDEA的自动编译(动态)

具体步骤:同时按住 Ctrl + Shift + Alt + / 然后进入Registry ,勾选自动编译并调整延时参数。
compiler.automake.allow.when.app.running -> 自动编译
compile.document.save.trigger.delay -> 自动更新文件
PS:网上极少有人提到compile.document.save.trigger.delay 它主要是针对静态文件如JS CSS的更新,将延迟时间减少后,直接按F5刷新页面就能看到效果!
在这里插入图片描述

三、以上配置后,只是保证了重启项目后是肯定会compile的,修改的肯定会生效,不用像之前那样需要执行maven compile命令

但是我不重启项目可不可以也让修改的类重新编译生成class文件然后生效呐?是可以滴,有以下三种方式

1.项目添加热部署依赖
 <dependency>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-devtools</artifactId>
</dependency>

添加依赖后,可以发现修改java文件后,项目会自动重启,但是这样其实比较慢(不推荐,虽然省的自己手动操作)

2.修改服务配置

on update action和on frame deactivation都选择update classes and resources
在这里插入图片描述
这样配置后我们也不用手动去启动了,但是它会加载很多文件,不一定只是我们修改的那个,会比较慢

3.手动Build(推荐)

如果我们只是修改了1、2个文件,可以手动bulid,选择recompile修改的Java类,idea底层会找到这个类下面的target下对应的class文件,将其删除,然后重新编译生成一个新的class文件,但是如果修改的文件比较多,或者不是常见类型的文件,比如spring.factories文件,即使有了上面的配置(spring.factories也不被自动编译,需要手动compile下),或者添加了一些方法等大逻辑,建议直接重启

参考文档:idea自动编译以及修改代码后需要执行 mvn clean install 才生效

  • 14
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

森林老虎

混口饭吃嘿嘿

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值