go env -w GOPROXY=direct
go mod tidy
をTerminalで実行すれば、Moduleは直接取れるので、基本的にはそれでOK。
go mod tidy
では、$GOPATH/pkg/mod
にパッケージが保存されるようになっている。
ただし、Goland側には、Vendoringという仕組みがある。
これは、プロジェクト内の vendor ディレクトリに格納されている依存関係パッケージのみを使用してアプリケーションを構築するというものだ。侵食耐性のある構成にするためだろう。
まず、
Settings > Go > Go Modules
に行く。
そこで、以下のように、
Environmentに、GOPROXY=direct
を設定しておく。
これで、Apply→OKとすると、re-download が始まった。
ちなみに、写真にあるように、
- Enable vendoring support automatically
としていると、Vendoringが自動で有効になる。
余談
こちら側で、手動でVendoringしておきたい場合は、
go mod vendor
で、./vendor に $GOPATH/pkg/mod
の内容のコピーをとり、こちらを参照するようにできる。
Golandだけでなく、Go自体のランタイムもこちらのモジュールを参照して、buildおよびtestを実行するようになる。