golang是否有下载第三方软件包的中央存储库?

use*_*268 5 package go

我是Golang的新手.据我所知,当你想创建一个新的Go项目时,我们只需要创建一个目录.然后我们将环境变量GOPATH指向此目录.在这个目录中,我们创建了三个子目录pkg,srcbin.然后,当我们执行时go get ...,第三方软件包将安装在pkg子目录中.稍后如果我想创建另一个Go项目,我创建一个名为project2的新目录并指向GOPATHproject2.此时go get ...将在pkgproject2 的子目录中下载第三方软件包.我的问题是,Go是否有一个中央存储库?如果没有,如果在两个不同的项目中使用相同的包,则将下载两次.真的吗?

Sła*_*osz 7

Go 软件包没有中央存储库。Go 总是在 GOPATH 或 GOROOT 中寻找包。go get 只是使用 git 或 Mercurial 下载软件包。我建议您阅读 https://golang.org/doc/code.htmlhttps://peter.bourgon.org/go-best-practices-2016/#repository-struct

GOPATH 只是告诉 go 编译器在哪里搜索src,pkg目录。