Grails 4开发中IntelliJ IDEA 19修改代码后全量编译耗时过长求助
IntelliJ IDEA 19 + Grails 4 后端代码修改触发全量重启的解决方案
1. IDEA 运行配置调整
- 打开IDEA的
Run/Debug Configurations面板,找到当前运行Grails项目的配置项 - 取消勾选
On 'Update' action下的Restart server选项,修改为Update classes and resources - 勾选
On frame deactivation选项,设置为Update classes and resources - 保存配置后重启一次项目生效
2. Grails 项目配置调整
- 打开项目根目录下的
grails-app/conf/application.yml文件,添加如下配置:grails: agents: reloading: enabled: true spring: devtools: restart: enabled: false - 若使用Gradle作为构建工具,打开
build.gradle文件,添加开发者工具依赖开启动态重载能力:developmentOnly 'org.springframework.boot:spring-boot-devtools' - 确认
build.gradle中无强制全量编译配置,删除grails { compile { all = true } }这类配置项
3. IDEA 全局编译配置调整
- 打开
File -> Settings -> Build, Execution, Deployment -> Compiler面板,勾选Build project automatically选项 - 按住
Ctrl+Shift+Alt+/选择Registry,找到并勾选compiler.automake.allow.when.app.running选项,保存后关闭Registry - 打开
File -> Settings -> Build, Execution, Deployment -> Build Tools -> Gradle,将Build and run using选项修改为IntelliJ IDEA,避免Gradle触发全量构建
4. 特殊场景说明
- Domain类修改涉及数据库表结构变更时默认会触发重启,若无需自动同步表结构,可在
application.yml中设置grails.hibernate.ddl-auto: none关闭自动DDL,即可实现Domain类代码逻辑的动态重载 - 若修改的是包含依赖注入注解的类,第一次修改后可按
Ctrl+F10手动触发更新,后续修改即可自动重载 - 配置调整完成后建议清空IDEA缓存并重启:
File -> Invalidate Caches / Restart,避免旧缓存导致配置不生效
内容的提问来源于stack exchange,提问作者Abhisek Mohanty
相关产品推荐
相关产品推荐

