「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > Go モジュールでの間接的な依存関係を完全に回避できますか?

Go モジュールでの間接的な依存関係を完全に回避できますか?

2024 年 11 月 12 日に公開
ブラウズ:489

Can You Completely Avoid Indirect Dependencies in Go Modules?

go.mod ファイルの間接依存関係の回避

Go モジュールのコンテキストでは、依存関係は特定のモジュールに必要なパッケージです。直接的な依存関係は go.mod ファイルの require ステートメントに明示的にリストされますが、直接的な依存関係がそれらに依存する場合、間接的な依存関係は自動的に追加されます。

これにより、モジュールの go.mod ファイルに次のような状況が発生する可能性があります。モジュール自体によって直接使用されない場合でも、多数の間接的な依存関係が存在します。これは、特に複数のバージョンの依存関係が含まれている場合、混乱を招き、管理が困難になる可能性があります。

残念ながら、go.mod ファイル内の間接的な依存関係を完全に回避することはできません。 Go モジュールを使用する場合、直接の依存関係に必要なすべての依存関係は、特に指定されていない限り、間接的な依存関係として自動的に追加されます。

質問に示されている例を考えてください:

module prodenv

go 1.13

require (
    github.com/gocolly/colly v1.2.0
    ...
)

この場合、github.com/gocolly/colly v1.2.0 には go.mod ファイルがないため、その依存関係はすべて prodenv モジュールの go.mod ファイルに間接的にリストされます。

間接的な依存関係を回避するには、go.mod ファイルを持つ依存関係を使用することをお勧めします。これにより、モジュールによって直接使用される依存関係のみが go.mod ファイルにリストされるようになります。

最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3