設定がややこしくてTry and errorでようやくできたのでメモ
環境
macOS High Sierra バージョン10.13.6
GO 1.12
revel 0.21.1
Intellij
参考URL
公式のデバック方法:https://revel.github.io/manual/debug.html
stackoverflow:https://stackoverflow.com/questions/37944552/debugging-revel-with-intellij
手順
公式にも書いてありますが不明点があり、最終的にstackoverflowの回答がわかりやすかったです。
revelチュートリアルにあるmyappをデバックしてみます。
revel runコマンドを実行。
$ revel run myapp
$GOPATH/src/myapp/app/tmp/main.go が出来ているのを確認。これがIntellij上で動かすmainになります。
Intellij設定
ここの設定が中々うまいこといかず最終的には下記となります
- Run->Edit configuration選択。Go Buildを選択
- 【Run kind】Fileを選択
- 【Files:】先程の
$GOPATH$/src/myapp/app/tmp/main.go
を指定 - 【Program arguments:】
-importPath myapp
を指定 - 【Before launch: ...】 新規で
Run external tool
を作成 - 【Program:】
$GOPATH$/bin/revel
を指定 - 【Arguments:】
build myapp myapp/app/tmp
を指定 - 【Working directory:】
$GOPATH$/bin
を指定
デバック実行
これでソース中の任意の場所にブレークポイントを設定するとデバックすることが出来ます。
実際に何のコマンドが発行されているのか
$ revel build myapp myapp/app/tmp
$ /usr/local/Cellar/go/1.12/libexec/bin/go build -i -o /private/var/folders/ny/_vrlbwh57vb8m04kg0b384m8qsbg2d/T/___go_build_main_go /Users/XXXXX/go/src/myapp/app/tmp/main.go /private/var/folders/ny/_vrlbwh57vb8m04kg0b384m8qsbg2d/T/___go_build_main_go -importPath myapp
revevでビルド後にgoでビルドをしているので、手順1のソースコードを変更した後でrevel run を毎回手動で行う必要は無さそうです。
多分他のフレームワークでも同じ手順でいけそうな感じがします