[英]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.