我已经习惯了Go,并试图了解它的工作原理。
所以我试图从我的存储库zoonoo / go-ethereum运行测试代码,该代码是从原始存储库ethereum / go-ethereum派生的。
在目录go test .下运行时eth,出现以下错误:
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"
"github.com/ethereum/go-ethereum/internal/ethapi"
这是否意味着在派生Go存储库时,必须更改代码中所有依赖项的路径才能运行代码? Go软件包系统是否完全支持存储库派生?
如另一个Go项目所示:
克隆fork 如果您希望使用InfluxDB的fork,例如您自己的fork,则仍必须遵循上面的目录结构。但是,与其克隆主仓库,不如克隆你的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工作来源。
go get