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 儲存庫,確保程式碼的無縫測試和執行。
以上是為什麼我的 Forked Go 專案出現「不允許使用內部套件」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!