>백엔드 개발 >Golang >`go.mod` 파일에서 간접 종속성을 피하는 방법은 무엇입니까?

`go.mod` 파일에서 간접 종속성을 피하는 방법은 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2024-11-10 09:17:02853검색

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.