IntelliJでGoの環境を構築する
IntelliJを購入したので、Goの勉強でもしようと思ったのですが…地味に苦戦した箇所があったのでメモっていこうかなと思います。
Goのインストール
HomebrewからGoをインストールする
$ brew install go
GOROOTとGOPATHの確認
GOROOTとGOPATHを確認する
$ go env GOROOT
/usr/local/go
$ go env GOPATH
GOROOTには/usr/local/Cellar/go/1.13.1/libexecを入れる
(Homecrewでインストールした場合はここ)
GOPATHには作業ディレクトリを入れる
※bashの場合は.bash_profileに
echo 'export GOROOT=/usr/local/Cellar/go/1.13.1/libexec' >> ~/.zprofile
echo 'export GOPATH=$HOME/Projects/gosample' >> ~/.zprofile
source ~/.zprofile
IntelliJでGoの開発環境を構築する
IntelliJでGoの開発環境を構築していきます。
Goのプラグインをインストール
「Configure」→「Plugins」→「Go」を検索して、「Install」をクリックします。
インストール完了したら、IDEを再起動します。
Goのプロジェクトを作成する
Goを選択すると、以下のようにGoのPathが設定されていれば完了です。
あとは任意のプロジェクト名を設定して作成します。
Hello Worldを実行してみる
以下のファイルをmain.goとして作成して、Runします。
package main
import "fmt"
func main(){
fmt.Print("Hello World")
}
以下の結果が表示されていれば、成功です。
Hello World
Process finished with exit code 0
IntelliJでGoをデバッグする
先ほどのmain.goをデバッグしてみると、バージョンが古いと言われて実行できません。
Delve(Goのデバッグツール)のバージョンが最低でも1.12でないとダメらしい
Version of Delve is too old for this version of Go (maximum supported version 1.12, suppress this error with --check-go-version=false)
Delveのバージョンを確認する
IntelliJのGoプラグインのDelveのバージョンを確認してみます。
IntelliJのプラグインは ~/Library/Application\ Support/IntelliJIdea2019.1 に格納されています。
プラグインの intellij-goを確認してみます。以下のコマンドを実行します。
~/Library/Application\ Support/IntelliJIdea2019.1/intellij-go/lib/dlv/mac/dlv version
Delve Debugger
Version: 1.2.0
Build: c30a333f7be2f4ca636a93cd198b1762c5615513
1.2.0のようです…古いです…
Delveをインストールする
古いのはどうしようもないので、現時点での最新バージョンをインストールしたいと思います。
$ go get -u github.com/go-delve/delve/cmd/dlv
dlv version
Delve Debugger
Version: 1.3.0
Build: $Id: 2f59bfc686d60989dcef9de40b480d0a34aa2fa5 $
IntelliJのプラグインのDelveを最新にする
先ほどインストールしたDelveのパスをプラグインにコピーしていきます。
Delveのパスを確認して、そのままプラグインのパスにコピーします。
$ which dlv
/Users/XXXXX/go/bin/dlv
$ cp /Users/XXXXX/go/bin/dlv ~/Library/Application\ Support/IntelliJIdea2019.1/intellij-go/lib/dlv/mac/
プラグインのDelveのバージョンを確認します。
~/Library/Application\ Support/IntelliJIdea2019.1/intellij-go/lib/dlv/mac/dlv version
Delve Debugger
Version: 1.3.0
Build: $Id: 2f59bfc686d60989dcef9de40b480d0a34aa2fa5 $
再度Goをデバッグする
設定完了したので、改めてmain.goをデバッグしてみます。
できました・・・地味に苦戦したので、メモっておきます。