繁体   English   中英

我可以拥有多个GOPATH目录吗?

[英]Can I have multiple GOPATH directories?

我把我的GOPATH设置为

/Users/me/dev/go

我有

/Users/me/dev/go/src/client1
/Users/me/dev/go/src/client2
/Users/me/dev/go/src/client3

并且

/Users/me/dev/client1/rails_project
/Users/me/dev/client2/php_project
etc.

我不喜欢在我的root dev文件夹中我不得不拥有这个包含许多不同客户端项目的一般“go”dir。

是的, GOPATH是一个目录列表(如PATH )。 有关详细信息,请运行go help gopath 例如,在Linux上,我有:

$ go env
GOROOT="/home/peter/go"
GOPATH="/home/peter/gopath:/home/peter/public/gopath"
$

我在Windows上有类似的东西。

注意:Linux使用:作为GOPATH列表分隔符; Windows使用; 作为分隔符。

如果你使用go get它将默认为列表中的第一个目录。

运行go env检查一切是否正确。

这篇博文给出了一个很好的解释,说明如何以及为什么要在GOPATH中设置多个值,特别是当它说:

我的GOPATH包含3个文件夹或GOPATH工作区。

第一个是我的登陆工作区 因为它首先列出,每当我去任何新的包时,它总是在这个工作区中结束。

Go搜索GOPATH中列出的每个目录以查找源代码,但新包始终下载到列表中的第一个目录中。 我规定永远不要在那里进行任何开发,所以每当它变得太大时清理这个文件夹总是完全安全的(使用我不使用的Go包)。 毕竟,它只有Go包,我可以再去拿go。

我的第二个工作区是所有的个人Go包以及我可能想要“喜欢”或进行一些开发的任何其他包。 我将我经常使用的东西从第一个工作空间移动到第二个

我的第三个工作区专门用于我工作中的私有Go包及其依赖项。 将我的工作包与我所有的个人资料分开是很方便的,所以他们不会互相帮助。

是。

引用Go本身:

$ go help gopath

Go路径用于解析import语句。 它由go / build包实现并记录。

GOPATH环境变量列出了查找Go代码的位置。
在Unix上,该值是以冒号分隔的字符串。
在Windows上,该值是以分号分隔的字符串。
在计划9中,值是一个列表。

必须将GOPATH设置为在标准Go树之外获取,构建和安装包。

GOPATH中列出的每个目录都必须具有规定的结构:

src目录包含源代码。 src下面的路径确定导入路径或可执行文件名。

...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM