ホームページ >バックエンド開発 >Golang >`go.mod` ファイル内の間接的な依存関係を回避するにはどうすればよいですか?

`go.mod` ファイル内の間接的な依存関係を回避するにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-11-10 09:17:02851ブラウズ

How to Avoid Indirect Dependencies in Your `go.mod` File?

go.mod での間接的な依存関係を回避する

go.mod ファイル内の間接的な依存関係は、直接の依存関係が他のパッケージに依存している場合に発生します。 go.mod ファイルで明示的に指定されていません。これらの間接的な依存関係は、go build などのコマンドを実行すると自動的にファイルに追加されます。

Colly の例

次の go.mod ファイルについて考えてみましょう:

module prodenv

go 1.13

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

go build を実行すると、go.mod ファイルに次の間接的な依存関係が含まれていることがわかります:

    github.com/PuerkitoBio/goquery v1.5.1 // indirect
    github.com/antchfx/htmlquery v1.2.2 // indirect
    github.com/antchfx/xmlquery v1.2.3 // indirect
    github.com/antchfx/xpath v1.1.5 // indirect
    github.com/gobwas/glob v0.2.3 // indirect
    github.com/kennygrant/sanitize v1.2.4 // indirect
    github.com/saintfish/chardet v0.0.0-20120816061221-3af4cd4741ca // indirect
    github.com/temoto/robotstxt v1.1.1 // indirect

説明

Colly バージョン 1.2 .0 には go.mod ファイルがありません。つまり、その依存関係はすべて間接的なものとみなされます。したがって、go.mod に Colly を含めると、その依存関係も間接的な依存関係として追加されます。

解決策

残念ながら、間接的な依存関係を回避する方法はありません。全体的に。ただし、この課題に対処する解決策はいくつかあります:

  • 依存バージョンのアップグレード: この場合、Colly バージョン 2.0.0 以降にアップグレードすると問題が解決します。バージョンには go.mod ファイルがあります。
  • 間接的な依存関係を確認する: 間接的な依存関係を注意深く確認して、それらが必要であることを確認し、不必要な依存関係の肥大化を回避します。
  • 使用go.mod を含むモジュール: 依存関係にパッケージ用の go.mod ファイルを作成するよう奨励します。これにより、依存関係の管理と制御が容易になります。

以上が`go.mod` ファイル内の間接的な依存関係を回避するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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