さようならGOPATH

GOPATH、きみのことは忘れるよ。

なんて書き始めたが、やっとGo moduleで気になっていたところが解決したので忘備録的に書き出す。

何に気になっていたかというと・・・

「OK!プロジェクトディレクトリを$GOPATH/src以下に作らなくて良くなったことは理解した!」

「でも待てよ?同じプロジェクト内のサブモジュールをimportすると、リモートリポジトリからダウンロードして$GOPATH/src以下に置いてしまうのでは?手元のやつを使ってくれないのでは?」と。

具体的に言うと・・・

"import github.com/****/monkey/token"が書かれているmain.goをgo buildすると、リモートリポジトリからgithub.com/****/monkey/tokenからダウンロードして$GOPATH/src以下に置いてしまうのでは?ローカルにあるのを使ってくれないのでは?と。

なんかループしてね?と。

これは私の勘違いで、go.modに"module github.com/hogehoge/monkey"と書いて、"import github.com/hogehoge/monkey/fuga"をすると、goが賢く同じプロジェクトディレクトリ内のfugaモジュールを使ってくれる。

go賢いな・・・

もう、ビルドスクリプトで"GOPATH=$(pwd)/src"をしなくていいんだ。

この記事が気に入ったらサポートをしてみませんか?