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

藏色散人
リリース: 2021-07-13 14:33:44
転載
3400 人が閲覧しました

背景

最近 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 までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート