ホームページ >バックエンド開発 >Golang >Go モジュールを使用してサブフォルダー内のモジュール バージョンの競合を処理する方法は?

Go モジュールを使用してサブフォルダー内のモジュール バージョンの競合を処理する方法は?

Susan Sarandon
Susan Sarandonオリジナル
2024-11-02 04:12:02767ブラウズ

How to Handle Module Version Conflicts in Subfolders with Go Modules?

サブフォルダー内のモジュール バージョンの管理

Go モジュールは、Go プロジェクトの依存関係を管理するための便利なメカニズムを提供します。ただし、リポジトリに複数の go.mod ファイルが含まれている場合 (1 つはルート ディレクトリに、もう 1 つはサブフォルダーにあるなど)、モジュール バージョンの処理はより複雑になります。

特定のシナリオでは、ボールトの更新で問題が発生します。 /api をバージョン 1.3.3 に変更すると同時に、github.com/bashicorp/vault から go.mod ファイルを継承します。この競合は、ルート モジュールとそのサブモジュールの間でバージョンの不整合が発生する可能性があるために発生します。

予想に反して、サブモジュールのバージョンは、親モジュールのバージョンと必ずしも同期しているわけではありません。代わりに、同じリポジトリ構造内に存在する独立したモジュールとして扱う必要があります。

この問題を解決するには、公式 Vault リリース ページを参照することをお勧めします: https://github.com/bashicorp /vault/リリース。このページには、正式なバージョン情報とタグが記載されています。 Go では、階層型 Git タグでサブモジュールのバージョンを示すことができます。

たとえば、vault 自体は現在バージョン 1.3.3 ですが、vault/api はバージョン 1.0.4 のままです (api/v1 の最新のタグに基づいています)。 .0.4)。 vault/api の最新バージョンを取得するには、go.mod でバージョンを明示的に指定せずに go get を実行するだけです。 go ツールは自動的に最新バージョンを見つけて取得します。

以上がGo モジュールを使用してサブフォルダー内のモジュール バージョンの競合を処理する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。