go.mod
別名: go mod file / go.mod ファイル / Goモジュールファイル
go.mod は Go モジュールの定義ファイル。
モジュールパス、必要な Go のバージョン、依存モジュールとそのバージョンを記述し、モジュールのルートに置く。
go コマンドが依存解決の起点にする。
公開:
定義
go.mod は Go のモジュールを定義するテキストファイルである。
そのモジュールのモジュールパス、ビルドに必要な Go の最低バージョン、依存する他モジュールとそのバージョンを宣言する。
モジュールのルートディレクトリに 1 つ置き、go build や go test などの go コマンドはここを起点に依存を解決する。
詳細
先頭の module 行がモジュールパスを、go 行が必要な言語バージョンを示す。require は依存モジュールと最小バージョンを列挙する。replace を使うと依存先をローカルディレクトリや別バージョンへ差し替えられ、exclude は特定バージョンを除外する。go mod tidy を実行すると、ソースの import を走査して過不足のある require を自動で追加・削除し、go.sum も更新する。
よくある誤解
go.mod と go.sum は役割が違う。go.mod は「必要な依存とバージョン」を宣言するのに対し、go.sum は取得した各モジュールのハッシュを記録して改ざんを検知する検証用ファイルである。go.sum を手で書くことは基本的にない。
関連
見つからないエラーはGo で「go.mod file not found in current directory」が解決できない、replace の不具合はGo の go.mod の replace でローカルモジュールが参照できないを参照。