Go + Revel + Intellij에서 디버깅하는 방법

설정이 다소 어려워서 Try and error로 마침내 할 수 있었기 때문에 메모

환경



macOS High Sierra 버전 10.13.6
GO 1.12
revel 0.21.1
Intellij

참고 URL



공식 디버깅 방법 : htps : // / ゔぇl. 기주 b. 이오 / 마누아 l / 데부 g. HTML
stackoverflow: h tps : // s t c ゔ ぇ rf ぉ w. 코 m / 쿠에 s 치온 s / 37944552 /에서 펭귄 g-re

절차



공식적으로도 써 있습니다만 불명점이 있어, 최종적으로 stackoverflow의 대답을 알기 쉬웠습니다.
revel 튜토리얼에 있는 myapp를 디버그해 보겠습니다.

revel run 명령을 실행합니다.


$ revel run myapp

$GOPATH/src/myapp/app/tmp/main.go가 되어 있는 것을 확인. 이것은 Intellij에서 움직이는 메인입니다.

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 를 매회 수동으로 실시할 필요는 없을 것 같습니다.
    어쩌면 다른 프레임 워크에서도 같은 절차로 갈 것 같습니다.

    좋은 웹페이지 즐겨찾기