하위 모듈과의 모듈 충돌 해결
Go 모듈 종속성에서 충돌이 발생하면 특히 최상위 모듈과 해당 모듈의 경우 실망스러울 수 있습니다. 하위 모듈은 다른 버전으로 별도로 가져옵니다. 이 문제는 하나 이상의 종속성이 모듈 또는 하위 모듈의 Go 이전 모듈 버전을 참조하여 모듈 및 하위 모듈 종속성을 모두 검색할 때 발생합니다.
충돌 식별
제공된 예에서 모듈 종속성 그래프는 다음과 유사합니다.
├── main module (github.com/test-org/test-repo) │ ├── github.com/foo/bar v1.0.0 │ └── github.com/raz/mataz v1.0.0 └─────github.com/shared/dependency ├── submodule: github.com/shared/dependency/api └── two downloaded versions: - v1.1.0 (module-less version) - v1.2.0 (Go module version)
충돌 해결
여기의 모호한 가져오기 오류 케이스는 github.com/shared/dependent/api에 대한 모듈 참조와 github.com/shared/dependent repo의 블랙박스 가져오기 사이의 충돌을 나타냅니다. 이 문제를 해결하려면 모듈과 하위 모듈의 일관된 버전을 적용해야 합니다.
해결책: 바꾸기 지시문 사용
해결책은 바꾸기 지시문을 추가하는 것입니다. 메인 모듈의 go.mod 파일에 있습니다. 이 지시문은 하위 모듈에 대한 모든 참조가 특정 버전을 사용하도록 강제합니다. 이 예에서는 Go 모듈 지원 버전인 github.com/shared/dependent v1.2.0을 사용하도록 참조를 강제합니다.
replace ( github.com/shared/dependency => github.com/shared/dependency v1.2.0 )
참고: 이 솔루션에서는 다음을 가정합니다. 모든 종속성은 여전히 github.com/shared/dependent의 Go 모듈 지원 버전을 사용해야 합니다. 그렇지 않은 경우 참조된 종속성 버전을 수정하거나 Glide와 같은 종속성 관리 도구를 사용하는 등 다른 솔루션이 필요할 수 있습니다.
위 내용은 Go 모듈 하위 모듈과의 모듈 충돌을 해결하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!