최상위 모듈을 가져올 때 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!