Open1

MVS

AkatsukiAkatsuki

https://encore.dev/guide/go.mod から一部翻訳

プログラムを構築するために、Goはどの依存関係が必要か、どのバージョンを使用するかを正確に知る必要があります。

GoはMVS(Minimal Version Selection)を、どのバージョンを使用するかを決定する予測可能でシンプルな方法として使用します。

MVSは次のように動作します

  1. 実行を開始したモジュールを"main module"とする
  2. "main module"が必要とするすべての依存関係を(依存関係のgo.modファイルを使って再帰的に)見つける
  3. 各依存関係には、go.modが明示的に指定した最大のバージョンを使用します。

example

上の例では"main module"はA 1.0B 2.1に依存しています。

B 2.1A 1.1に依存している(B 2.1go.modに記載)ので、A 1.1が使用されることになります。

A 1.1を使用するのでC 1.1もプルします。

最終的な依存関係は

  • A 1.1
  • B 2.1
  • C 1.1

となります。