😽
Intellijでgo modulesの設定したよ
今回は完全に自分用
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の設定も外さないと駄目だったので追加
Discussion