あべぶろ

気になった技術の備忘録を残します。

[Golang] 環境変数GO111MODULEの設定値の違いについて

概要

  • Golangで依存関係を管理するのに、depを使用しておりModule(vgo)を触ったことなかったので触れてみる。
  • Module全部理解するのは時間かかるので、GO111MODULEの挙動について纏める。
  • 自分用のメモ、内容薄いのは気にしない(これ大事)

GO111MODULEとは

  • Go 1.11から設定出来るようになった環境変数のこと、on/off/autoの3種類の値を設定することが出来る。
  • これを設定することでModuleを使うのか、今まで通り$GOPATHを用いて依存関係を管理するのか設定することが出来る。

onの場合

  • modulesを使う、module-aware modeと呼ぶらしい。
  • $GOPATH配下じゃなくても、依存関係を解決出来るらしい。

offの場合

  • $GOPATHを使った依存解決を行う必要がある。
  • Go 1.11以降でもdepなどのツールを使う場合は意図的にoffにする?

autoの場合

  • go.modが存在し、$GOPATH内であればmodulesを使うようになる。
  • Go 1.13より前の場合は挙動が変わる。

    GO111MODULE=auto enables module-mode if any go.mod is found, even inside GOPATH. (Prior to Go 1.13, GO111MODULE=auto would never enable module-mode inside GOPATH).

参考