競合する Go モジュールの依存関係の解決: トップレベル モジュールとサブモジュールの個別のバージョン
Go モジュールの依存関係を処理する場合、個別のバージョンの Go モジュールから生じる競合を解決します。トップレベルのモジュールとそのサブモジュールは難しい場合があります。この問題は、不明瞭なインポート メッセージを含む不明なインポート パスとして現れます。
根本的な原因は、多くの場合、共有サブモジュールの go-modules より前のバージョンを参照する依存関係の 1 つにあります。その結果、同じサブモジュールに対してモジュール参照とブラック ボックス インポートが混在し、競合が発生します。
この問題を解決するには、既存の依存関係を go-modules-enabled に明示的に置き換える方法が 1 つあります。 「replace」ディレクティブを使用して go.mod ファイル内のバージョンを変更します。これにより、共有依存関係へのすべての参照が指定された go-module バージョンを使用するように強制され、競合が効果的に解決されます。
例:
replace ( github.com/shared/dependency => github.com/shared/dependency v1.2.0 )
この解決策は、すべての参照が確実に実行されるようにすることに依存していることに注意してください。共有依存関係には、go モジュールと互換性のあるバージョンを使用し、go.mod ファイルを含めます。そうしないと、競合が継続する可能性があります。
以上がGo モジュールのトップレベルモジュールとサブモジュール間の依存関係の競合を解決するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。