Go: 포크된 프로젝트의 '내부 패키지 사용이 허용되지 않음' 오류 이해
포크된 Go 저장소로 작업할 때 다음 사항을 이해하는 것이 중요합니다. 저장소 구조 및 종속성 경로의 의미.
기본 저장소 "ethereum/go-ethereum"에서 시작되는 "zoono/go-ethereum"과 같은 분기된 저장소를 고려하십시오. "go test ."를 실행하는 동안 발생한 오류:
eth/api.go:37:2: use of internal package not allowed
는 코드가 원래 저장소 내의 내부 패키지, 즉 "github.com/ethereum/go-ethereum/internal/ethapi에 액세스하려고 시도함을 나타냅니다. ."
포킹 및 종속성 경로
성공적인 작업을 위해 Go 프로젝트와 해당 종속성은 특정 디렉터리 구조와 가져오기 경로를 준수합니다. 저장소를 포크해도 일반적으로 원래 저장소에 상대적인 코드 내의 종속성 경로는 변경되지 않습니다. 종속성 경로가 더 이상 유효하지 않기 때문에 포크된 코드에 대해 테스트를 실행하려고 하면 오류가 발생합니다.
오류 해결
이 오류를 해결하려면, 포크된 저장소 내에서 원본 저장소의 디렉터리 구조를 유지하는 것이 중요합니다. 또한 코드의 패키지 가져오기 경로가 원본 저장소가 아닌 분기된 저장소를 반영하는지 확인하세요. 여기에는 다음이 포함됩니다.
올바른 디렉터리 구조에서 분기된 저장소를 복제합니다.
export GOPATH=$HOME/gocodez mkdir -p $GOPATH/src/github.com/zoono cd $GOPATH/src/github.com/zoono git clone [email protected]:<username>/go-ethereum
코드의 패키지 가져오기 경로를 다음과 일치하도록 수정합니다. 분기된 저장소:
// Before import "github.com/ethereum/go-ethereum/internal/ethapi" // After import "github.com/zoono/go-ethereum/internal/ethapi"
이러한 지침을 준수하면 Go 저장소를 효과적으로 분기하고 작업하여 코드를 원활하게 테스트하고 실행할 수 있습니다.
위 내용은 My Forked Go 프로젝트에서 \'Use of Internal Package Not Allowed\' 오류가 발생하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!