idea代码修改后直接编译

原文出处:https://blog.csdn.net/c15158032319/article/details/79567333

- 因为之前一直用的maven构建的项目,可以直接install,所以没有出现这个问题,直到最近接手一个需要维护的老项目没有用到maven,调试的时候总是修改代码后不生效,即使重启idea还是重启tomcat都没用。

- 先说说我刚开始一个治标不治本的方法,修改成下面的配置再说

这里写图片描述 
这里写图片描述

- 如果你不想设置成自动,那么点击下面这个按钮也是可以的。

这里写图片描述

- 当然仅仅这样还是不够,因为一开始我就是这样配置的,我一直觉得已经达到了热加载的效果了,class应该会自动更新才对,结果是我错了。在你修改过的类文件中点击右键,点击重新编译。

这里写图片描述

- 百度亦未尝找到原因,于是我开始思考原因,从表现上看就像是idea保留着缓存,reconmpile一次后就会优先读取这个重新编译后的文件,但是重启之后又会失效,好吧,每次都要recompile一次我真的烦了,然后我注意到了在webapp/WEB-INF下面有classes文件夹,里面就有编译后的文件,但是我之前配置项目的时候,输出的文件路径不应该是在webapp/WEB-INF下啊,同时我对比我修改后的源文件和webapp/WEB-IN下classes中的文件居然不一样,所以我把classes删掉,重启服务器后,你会发现webapp/WEB-INF下的class文件又有了,所以可以得出结论当你修改文件的时候,重启服务器,服务器打包用的类文件是webapp/WEB-INF下面的classes,所以把它删掉重启就可以了。

- 但是也不能每次发布修改后的代码都要把classes文件都删了吧,这明显也是治标不治本,我不信idea会有这么蠢得设定。我想起来刚开始配置项目的时候编译文件输出路径不是webapp/WEB-IN/classes,所以我确信我知道原因了,要配置class输出路径,请按下ctrl+shift+alt+s:

这里写图片描述
这里写图片描述

- 把文件编译后输出路径改为webapp/WEB-IN/classes就好了,就是这么一回事,问题终于得到解决。


  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值