Goのマルチモジュール構成でWorkspace modeを使ってみる

Go1.18から追加されたWorkspace modeを使ったことがなかったので、使ってみた。

Workspace modeとは

Goのマルチモジュール構成を便利するための機能。

Workspace modeの使い方

次のような構成を用意する。

fooディレクトリで次のコマンドを実行して、go.modをセットアップする。

同じく、barディレクトリで次のコマンドを実行して、go.modをセットアップする。

次に、cmdディレクトリを作成して、main.goファイルを次のように作成する。

cmdディレクトリでも同様にgo.modをセットアップする。

ここまでで、次のような構成になる。

ルートのディレクトリにて、次のコマンドを実行し、workspaceの設定を行う。

go.workというファイルが作成される。

go run cmd/main.goが実行できることを確認。

続いて、bazというモジュールを追加してみる。

go mod init example.com/bazを実行して他のモジュールと同じようにgo.modを生成する。

続いて、main.goにbazを追加する。

ルートに戻り、go work use bazを実行し、モジュールを追加すると、go.workにbazが追加される。

go run cmd/main.goを実行して、出力にbazが追加されていることを確認する。

所感

マルチモジュール構成が手間だなぁと思っていたので簡単になって良いなと思った。

参考