Go言語でローカルパッケージをインポートするときってクソめんどくさい。
そもそも、go mod initはインターネットに公開する前提らしい。
以下、自分の中で整理したもの。
- go moduleはgolang 1.11からGOPATHモード、モジュールモードを切り替えられる
- GOPATHモード、go env -w GO111MODULE=
- モジュールモード go env -w GO111MODULE=on
- パッケージは単一のディレクトリ、モジュールはgo.modが存在するディレクトリ配下のすべてのパッケージがモジュール配下になる
- ローカルパッケージをimportするときは、インポートするコードと同一ディレクトリにあるgo.modファイルにreplace github.com/mutomasa/http => ../httpみたいに記述をする
- go mod tidyでimportしたパッケージを取得する。go.sumに謎の依存関係を吐き出す