コンテンツにスキップ

Go/go.mod

出典: フリー教科書『ウィキブックス(Wikibooks)』
< Go

go.modは、Go のモジュール管理システムで使用される設定ファイルです。Go 1.11で導入されたGo Modulesの中核となるファイルで、プロジェクトの依存関係を管理します。

go.modの主な役割

[編集]
モジュールの定義
プロジェクト自体をひとつのモジュールとして定義し、そのモジュール名を指定します。
依存関係の管理
プロジェクトが使用する外部パッケージとそのバージョンを記録・管理します。
バージョン管理
セマンティックバージョニングを使用して、各依存関係の具体的なバージョンを指定します。

go.modファイルの基本構造

[編集]
module example.com/myproject

go 1.21

require (
    github.com/gorilla/mux v1.8.0
    github.com/lib/pq v1.10.9
)

replace github.com/old/package => github.com/new/package v1.2.3

各行の意味:

  • module: モジュール名(通常はリポジトリのパス)
  • go: 使用するGoのバージョン
  • require: 依存する外部パッケージとバージョン
  • replace: パッケージの置換指定(開発時やフォーク使用時など)

主なコマンド

[編集]
  • go mod init: 新しいgo.modファイルを作成
  • go mod tidy: 不要な依存関係を削除し、必要なものを追加
  • go mod download: 依存関係をダウンロード
  • go mod vendor: vendorディレクトリに依存関係をコピー

go.modがあることで、Goプロジェクトの依存関係が明確になり、再現可能なビルドが実現できます。