ホームページ >バックエンド開発 >Golang >単一のリポジトリで複数の go mod モジュールをサポートする方法

単一のリポジトリで複数の go mod モジュールをサポートする方法

藏色散人
藏色散人転載
2021-07-13 14:33:443452ブラウズ

背景

最近 Go を書いています。複数のモジュールを含むプロジェクトがあります。バージョンは一緒にリリースされています。これらのモジュールを他のプロジェクトで使用するには、複数のモジュールのリリースを 1 つのウェアハウスで実装する必要があります。

ウェアハウス構造

ウェアハウス構造は次のとおりです:

.├── README.md
├── a
│   ├── a.go
│   └── go.mod
└── b
    ├── b.go
    └── go.mod

a/go.mod は次を使用して生成されます。 command:

go mod init github.com/robberphex/go-test-multi-module/a

バージョンリリース

マルチモジュールのため、異なるタグが使用されます。タグ名は一律 / となります。

たとえば、現在のタグは次のとおりです:

$ git tag
a/v1.0.0
b/v1.0.0
b/v1.0.1

ユーザーの使用法

インストール時に、ユーザーは通常のモジュールと同じコマンドを実行するだけで済みます。 :

$ go get github.com/robberphex/go-test-multi-module/b
go: downloading github.com/robberphex/go-test-multi-module/b v1.0.1
go: downloading github.com/robberphex/go-test-multi-module v0.0.0-20210420014022-d2c7262e89eb
$ go get github.com/robberphex/go-test-multi-module/a
go: downloading github.com/robberphex/go-test-multi-module/a v1.0.0

VSCode 開発経験

ただし、複数のモジュールの場合、VSCode を使用してウェアハウス (ルート ディレクトリ) を開くと、VSCode がエラーを報告します。 , サードパーティのパッケージの自動補完が関係していますが、どれも機能しません:


プロンプトに従って情報を確認したところ、golps のみが見つかりましたマルチモジュール ウェアハウスは実験的にサポートされており、手動でこのスイッチをオンにする必要があります:

"gopls": {
    "build.experimentalWorkspaceModule": true}

これにより、マルチモジュール プロジェクトをスムーズに開発できます。

追記: 非常に便利なスイッチ ui.completion.experimentalPostfixCompletions もあります。これをオンにして確認できます。効果は次のとおりです:

golang 関連の技術記事については、golang チュートリアル列をご覧ください。

以上が単一のリポジトリで複数の go mod モジュールをサポートする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はlearnku.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。