go module

Go言語でローカルパッケージをインポートするときってクソめんどくさい

そもそも、go mod initはインターネットに公開する前提らしい。

以下、自分の中で整理したもの。

  1. go moduleはgolang 1.11からGOPATHモード、モジュールモードを切り替えられる
    1. GOPATHモード、go env -w GO111MODULE=
    2. モジュールモード go env -w GO111MODULE=on
  2. パッケージは単一のディレクトリ、モジュールはgo.modが存在するディレクトリ配下のすべてのパッケージがモジュール配下になる
  3. ローカルパッケージをimportするときは、インポートするコードと同一ディレクトリにあるgo.modファイルにreplace github.com/mutomasa/http => ../httpみたいに記述をする
  4. go mod tidyでimportしたパッケージを取得する。go.sumに謎の依存関係を吐き出す