red*_*ead 6 java tomcat intellij-idea maven
我有一个Spring Web应用程序,当我在Tomcat中使用IDEA的调试器进行调试并在进行一些更改后重新部署项目时,这些更改未部署,调试器“看到”了旧代码(逐步输入错误或空白行)。唯一有用的是运行maven全新安装,然后再次启动Tomcat。
我试图清除IDEA缓存,但没有帮助。
尽管我在设置中选择了正确的选项,但是Hotswap也不起作用,但是我可以接受。
请注意,我使用的是redeploy而不是hotswap,因此整个应用程序都将重新启动,它应该重新加载所有类,但不会重新加载。只有在Maven构建之后,它才能起作用。
注意2:我认为它可以在一个月前正常运行,但是我认为没有任何变化可以做到这一点(在项目或IDEA方面)
编辑:因此,热交换现在可以正常工作了(魔术上,我什么也没做)。但是,当我进行较大的修改(例如,方法签名更改等)时,它们在REDEPLOY到服务器期间不会被接收。因此,我需要运行maven clean install并再次启动服务器,以查看更改,并在对新代码修改方法主体之后,使热插拔正常工作。知道为什么吗?
您需要检查 tomcat 的运行配置,在“启动前”中应该有 Make 和 Build 工件步骤,还要确保您更改的所有类在重新部署期间确实在编译 - 这就是我要开始的地方。
另外我不明白你为什么使用重新部署而不是热插拔?重新部署通常与重启服务器一样耗时,但热插拔几乎是即时的。虽然它只允许更改方法体和常量,但通常最好在开发中重新部署。我个人正在使用 JRebel,它现在对非商业项目免费,并且很少重启服务器。
编辑: 我不知道为什么你的类即使在重新部署后也很旧,但原因是 99% 的原因是它们在更改为爆炸文件夹后没有编译。每次代码更改后都做 maven clean install 太多了(IDE 编译应该足够了)。
我可以建议您不要重新部署,而是在发生重大变化后重新启动服务器。以便 IDE 执行 Make、Build artifact 和 Deploy artifact 任务。
| 归档时间: |
|
| 查看次数: |
7507 次 |
| 最近记录: |