😽

Intellijでgo modulesの設定したよ

2021/09/19に公開

今回は完全に自分用

golangはGOROOTとかGOPATHにアホほど苦しんだ覚えがあったが、今回もガッツリ詰まった.
なんとか解決できたので備忘録として残す。

いきさつ

Intellijでgolangのデバッグ環境設定していたら、GOPATHはオワコン(しらんけど)だということだったのでmodulesを使うことに。
その過程で、modulesはimport時の相対パスが使えなくなっており、go.modに指定しているモジュール名を用いて絶対パス指定で記述する必要があるためimport文はそれに習って書いていく。

階層はこんな感じ。

my-go-gin
│
├── go.mod
├── go.sum
├── greetings
│   └── greetings.go
├── main.go
├── pkg
│   └── mod
└── src

go.mod

module my-go-gin

go 1.17

main.go

package main

import (
	"fmt"

	"my-go-gin/greetings"
)

func main() {
	message := greetings.Hello("Gladys")
	fmt.Println(message)
}

ここまで書いててmy-go-gin/greetings付近で、なんかめっちゃ赤線(警告)でるなぁ〜

go getすれば消えるんかな〜くらいで達観してたら

unrecognized import path does not begin with hostname

こんなんでた。

なんやこれってことで調べてみるとGOROOTの設定がおかしいときに出るとかなんとか。
ここで調べること2時間。けっきょくIntellij側の設定だった。

設定箇所

Preferences > Languages and Frameworks > Go > Go modules

「Goモジュールの統合を有効にする」にチェックを入れる。

こんだけ。
Intellijやめれば?って声が聞こえてきそうだが、これからもIntellij使っていきます。

おまけ

GOPATHの設定も外さないと駄目だったので追加

GitHubで編集を提案

Discussion