>백엔드 개발 >Golang >최상위 모듈과 하위 모듈을 다른 버전으로 가져올 때 충돌하는 Go 모듈 종속성을 해결하는 방법은 무엇입니까?

최상위 모듈과 하위 모듈을 다른 버전으로 가져올 때 충돌하는 Go 모듈 종속성을 해결하는 방법은 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-11-02 10:00:30309검색

How to Resolve Conflicting Go Module Dependencies When Top-Level and Sub-Module Are Imported as Different Versions?

최상위 모듈과 하위 모듈을 다른 버전으로 가져올 때 충돌하는 Go 모듈 종속성 해결

최상위 모듈을 가져올 때 Go 모듈 종속성이 때때로 충돌을 일으킬 수 있습니다. 모듈과 그 하위 모듈 중 하나는 별도로 다른 버전으로 가져옵니다. 이 문제를 탐색하고 해결책을 찾아보겠습니다.

문제 개요

아래 go.mod 파일에 표시된 것처럼 프로젝트에 두 가지 종속성이 있는 경우 go. mod download 명령을 사용하면 공유 하위 모듈의 다른 버전이 다운로드될 수 있습니다.

module github.com/test-org/test-repo

go 1.12

require (
    github.com/foo/bar v1.0.0
    github.com/raz/mataz v1.0.0
)

이로 인해 코드에서 하위 모듈을 가져올 때 Go 도구가 확실하지 않기 때문에 모호한 가져오기 오류가 발생할 수 있습니다. 어떤 버전을 선택할지 선택하세요.

솔루션

종속성 중 하나가 하위 모듈의 모듈 이전 버전을 참조할 때 문제가 발생합니다. 전체 저장소의 블랙박스 가져오기가 하위 모듈에 대한 모듈 참조와 충돌합니다.

이 충돌을 해결하려면 공유 종속성에 대한 참조를 강제로 go-module 지원 버전을 사용하도록 할 수 있습니다. go.mod 파일에 다음 줄을 추가하세요.

replace (
    github.com/shared/dependency => github.com/shared/dependency v1.2.0
)

지정된 버전(이 예에서는 v1.2.0)이 go-module을 지원하는지 확인하세요(go.mod 파일이 있음).

이 솔루션은 공유 종속성에 대한 모든 참조가 모듈 버전을 사용하도록 보장하여 모호한 가져오기 오류를 초래한 블랙박스 가져오기 충돌을 제거하므로 효과적입니다.

위 내용은 최상위 모듈과 하위 모듈을 다른 버전으로 가져올 때 충돌하는 Go 모듈 종속성을 해결하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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