IntelliJ调试WildFly/JBoss时代码变更不生效,如何无需重装重启生效?
IntelliJ + WildFly/JBoss 实现代码热部署(父子模块项目)
1. 开启IntelliJ自动构建
- 打开
File → Settings(快捷键Ctrl+Alt+S),找到Build, Execution, Deployment → Compiler - 勾选 Build project automatically
- 按Ctrl+Shift+A搜索
Registry,找到compiler.automake.allow.when.app.running并勾选,让程序运行/调试时也能自动编译变更代码
2. 调整WildFly的部署扫描配置
- 打开WildFly安装目录下
standalone/configuration/standalone.xml - 找到
<subsystem xmlns="urn:jboss:domain:deployment-scanner:2.0">节点,修改scan-interval属性值(比如设为2000,即2秒),让服务器更快检测到文件变更 - 确保
deployment-timeout值足够(比如设为60),避免部署超时
3. 配置IntelliJ的部署选项
- 右上角运行按钮下拉选
Edit Configurations,找到你的Remote JVM Debug或WildFly服务器配置 - 切换到Deployment标签页,确认子模块已添加为部署项,且部署类型选择Exploded(用解压后的war包格式,而非打包好的war,方便同步变更)
- 进入Options标签,勾选
Redeploy automatically when application changes,或者将更新行为设置为Update classes and resources
4. 手动触发热更新(自动不生效时)
- 在调试会话中,按Ctrl+F10(或点击调试工具栏的「Update」按钮)
- 在弹出窗口选择Update classes and resources,IntelliJ会把编译后的class文件同步到服务器,WildFly会自动加载变更
- 注意:如果修改了类结构(比如新增方法、改方法签名),热更新可能失效,还是需要重启;但修改方法内部逻辑、字符串这类内容完全可以通过热更新生效
内容的提问来源于stack exchange,提问作者Ronald
相关产品推荐
相关产品推荐

