grails run-app --debug-fork
补充:试了一下最新的GGTS 3.5M1,可以直接debug而不用这么啰嗦。
所以问题很明确了,ide需要对fork进行支持,等idea和sts/ggts升级吧。
grails 2.3版本升级之后,由于引入了fork机制进行并行处理,所以没法用以前最简单的从ide里面使用grails run-app启动程序直接进行调试了,必须换个方式。
首先是直接启动grails,可以在ide里面也可以直接在命令行,使用的命令是
如果使用ide,比如idea,那么在菜单的Run -> Edit Configurations -> Grails : Command Line里面改。
启动之后会显示:
Listening for transport dt_socket at address:5005
这时候可以进行调试了,但是必须是Remote模式。
在IDEA里面,在菜单的Run -> Edit Configurations,点左上角的加号+ Add New Configuration,
选中Remote。然后见下图,Settings里面选Socket 然后 Host:localhost,Port:5005
然后Run启动这个配置,就可以对断点进行调试了。
Eclipse等,同理。
这里特地说一下,不建议把fork都设置为false,我经过反复尝试,2.3.3和2.3.4版本,如果false了fork,reloading都不正常,貌似无解;虽然官方说默认启动了-reloading,但是无论是加命令行参数还是进行配置,都不好用,reload的时候会出现错误。