解决Intellji Idea修改代码以后无效的问题

  • 因为之前一直用的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就好了,就是这么一回事,问题终于得到解决。

你可能感兴趣的:(IDE)