以前に、ここで2.2 系のデバッグ方法を紹介したが、
同じ方法で 2.3 だと上手くいかない。
(後日追記)
intellij からのデバッグが結構早くなっていたので、この方法を使う必要はないような気がしてきた。
2.3 系では以下のようにする。
コマンドラインで制御
1 2 3 4 5 |
$ grails run-app --debug-fork Listening for transport dt_socket at address: 5005 |
この後、Remote で接続してデバッグ。Remote については、ここを参照
interactive mode で行う
1 2 3 |
$ grails |
interactive mode になったら、
1 2 3 4 5 |
grails> run-app --debug-fork Listening for transport dt_socket at address: 5005 |
この後、Remote で接続してデバッグ。Remote については、ここを参照
常にデバッグモードで接続する場合
BuildConfig.groovy にある、grails.project.fork の run の所を
1 2 3 |
debug: true |
にする。
以下のように修正する
- 修正前
- 修正後
1 2 3 |
run: [maxMemory: 768, minMemory: 64, debug: false, maxPerm: 256, forkReserve:false], |
1 2 3 |
run: [maxMemory: 768, minMemory: 64, debug: true, maxPerm: 256, forkReserve:false], |
あとは
1 2 3 4 5 6 7 |
$ grails grails> run-app Listening for transport dt_socket at address: 5005 |
となるので、Remote 接続。Remote については、ここを参照
stop-app について
Grails2.3.4 を使っているが、stop-app が効かない。
stop-app を使いたい場合は、fork の機能を使わなくする方法で回避できる。
fork の機能を止めて、ここにあるやり方でデバッグする
forkは、BuildConfig.groovy にある、grails.project.fork を全てコメントすると、fork は使われなくなる
1 2 3 4 5 |
//grails.project.fork = [ //... //] |
開発で起動時だけを制御したいなら、
1 2 3 |
run : false, |
にしておくとよい。