grails2.3.x中默认情况下运行模式被设置成了fork模式,在这种模式下,大家会发现设置了断点后无法进行中断。这是由于fork模式造成的,因为在fork模式下,JVM新起了一个进程,这样调试器就无法以本地运行方式内嵌其中,从而无法在断点处中断。
在fork模式下该如何进行调试呢?主要有如下几种方法:
- 启用fork模式下的debug状态
编辑conf/BuildConfig.groovy
run: [maxMemory: 768, minMemory: 64, debug: true, maxPerm: 256, forkReserve:false],
- 在命令行中以debug-fork模式运行
grail run-app --debug-fork
然后用远程调试方式进行调试,比如对于Intellij:
"Run / Edit Configurations", 点击 + "Remote",然后命名,比如"Grails Remote",然后按ok按钮.
- 不以fork模式启动,这样就能按照以前的方式直接在IDE中设置断点并调试
编辑conf/BuildConfig.groovy
run: false,