IntelliJでGoの環境を構築する

2023年6月5日

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をデバッグしてみます。

できました・・・地味に苦戦したので、メモっておきます。