>  기사  >  백엔드 개발  >  My Forked Go 프로젝트에서 \"Use of Internal Package Not Allowed\" 오류가 발생하는 이유는 무엇입니까?

My Forked Go 프로젝트에서 \"Use of Internal Package Not Allowed\" 오류가 발생하는 이유는 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2024-10-26 01:48:28958검색

 Why is

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 프로젝트와 해당 종속성은 특정 디렉터리 구조와 가져오기 경로를 준수합니다. 저장소를 포크해도 일반적으로 원래 저장소에 상대적인 코드 내의 종속성 경로는 변경되지 않습니다. 종속성 경로가 더 이상 유효하지 않기 때문에 포크된 코드에 대해 테스트를 실행하려고 하면 오류가 발생합니다.

오류 해결

이 오류를 해결하려면, 포크된 저장소 내에서 원본 저장소의 디렉터리 구조를 유지하는 것이 중요합니다. 또한 코드의 패키지 가져오기 경로가 원본 저장소가 아닌 분기된 저장소를 반영하는지 확인하세요. 여기에는 다음이 포함됩니다.

  1. 올바른 디렉터리 구조에서 분기된 저장소를 복제합니다.

    export GOPATH=$HOME/gocodez
    mkdir -p $GOPATH/src/github.com/zoono
    cd $GOPATH/src/github.com/zoono
    git clone [email protected]:<username>/go-ethereum
  2. 코드의 패키지 가져오기 경로를 다음과 일치하도록 수정합니다. 분기된 저장소:

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

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