一尘不染

Go:运行从GitHub存储库派生的Go项目时,“不允许使用内部软件包”

go

我已经习惯了Go,并试图了解它的工作原理。

所以我试图从我的存储库zoonoo / go-ethereum运行测试代码,该代码是从原始存储库ethereum / go-ethereum派生的

在目录go test .下运行时eth,出现以下错误:

eth/api.go:37:2: use of internal package not allowed

eth / api.go的第37行如下: "github.com/ethereum/go-ethereum/internal/ethapi"

这是否意味着在派生Go存储库时,必须更改代码中所有依赖项的路径才能运行代码?
Go软件包系统是否完全支持存储库派生?


阅读 410

收藏
2020-07-02

共1个答案

一尘不染

另一个Go项目所示

克隆fork

如果您希望使用InfluxDB的fork,例如您自己的fork,则仍必须遵循上面的目录结构。但是,与其克隆主仓库,不如克隆你的fork。请按照以下步骤使用叉子:

export GOPATH=$HOME/gocodez
mkdir -p $GOPATH/src/github.com/influxdb
cd $GOPATH/src/github.com/influxdb
git clone git@github.com:<username>/influxdb

必须保留目录结构$ GOPATH / src / github.com / influxdb,以便Go导入正常工作。

用您的项目替换InfluxDB名称/ URL,同样的想法也适用。

在您的情况下,只有GitHub fork可以将您的贡献推回去,并从中发出Pull请求。由于软件包与您的GitHub的回购URL不匹配,
因此它不会作为go get工作来源。

2020-07-02