You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Maven项目调试模式下如何不停止服务编译并动态加载jar/artifact

IDE调试模式下多模块代码动态加载通用方案

所有主流Java IDE(IntelliJ IDEA、Eclipse、VSCode Java插件等)均原生支持调试状态下的字节码热替换能力,配合增量编译配置即可实现不重启服务加载修改后的代码,操作步骤如下:

  • 关闭全量编译的强制触发逻辑
    取消每次构建前自动执行mvn clean的配置,避免全量清理已编译的类文件,大幅降低模块构建耗时。
  • 开启IDE增量编译开关
    • IntelliJ IDEA:进入设置→构建、执行、部署→编译器,勾选「自动构建项目」,同时在高级设置中开启「调试过程中允许自动生成类」
    • Eclipse:进入偏好设置→运行/调试→热代码替换,勾选所有自动替换选项,同时开启菜单栏「项目」下的「自动构建」开关
    • VSCode Java插件:在settings.json中配置java.debug.settings.hotCodeReplace为auto,同时开启增量编译
  • 触发单模块编译
    修改对应模块代码后,右键选中目标模块,点击「编译模块」(IDEA)/「构建所选项目」(Eclipse),IDE仅会编译当前模块有变更的代码文件,你也可以将模块的mvn install目标绑定到IDE的模块构建生命周期中,不需要手动切换目录执行命令行。
  • 热替换字节码到运行进程
    非结构性代码变更(方法内部逻辑修改、变量值调整等)编译完成后,IDE会自动将新的字节码替换到正在运行的调试进程中,无需重启服务。如果是新增方法、新增类这类结构性变更,可手动点击调试面板的「重新加载已更改的类」按钮,绝大多数场景下可直接生效。

注意:如果修改的内容是类的继承关系、注解配置定义这类底层结构变更,受JVM本身的类加载机制限制,无法通过热替换生效,仍需重启服务。

内容的提问来源于stack exchange,提问作者user6389

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 20:57:00