共通モジュールを隔離する方法をまとめました。
動作環境
ホストOS | Windows 10 21H1(19043.2130) 64bit |
WSL | 2 |
Visual Studio Code | 1.70.2 |
Docker Desktop | 4.12.0(85629) |
Go | 1.19.2 |
サンプル
下記コマンドで隔離することができます。
go mod vendor
使い方の流れを下記にまとめました。
アプリを用意する
下記のような構成とします。
.
├── samplehello
│ └── samplehello.go
├── main.go
モジュールをダウンロードする
プロジェクトルートにmodファイルを作ります。
go mod init [モジュール名] # ここではsampleにしました。
.
├── go.mod
├── samplehello
│ └── samplehello.go
├── main.go
プロジェクトルートで下記コマンドを実行します。
go mod tidy
.
├── go.mod
├── go.sum
├── samplehello
│ └── samplehello.go
├── main.go
実行する
この時点の実行結果は下記の通りです。
go run *.go
==========
Hello, WORLD :)
モジュールを隔離する
下記コマンドを実行することで、依存しているモジュールをvendorフォルダに隔離することができます。
go mod vendor
.
├── go.mod
├── go.sum
├── main.go
├── samplehello
│ └── samplehello.go
└── vendor
├── github.com
│ └── mitikusaEngineer
│ └── GoSample
│ └── hello
│ └── hello.go
└── modules.txt
vendor内のモジュールを更新して実行する
下記コードに更新します。
vendor内のコードが優先されることが確認できました。
go run *.go
==========
Hello, WORLD ^^b