我可以有多个 GOPATH 目录吗?

我将 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.

我不喜欢在我的根 dev 文件夹中我被迫拥有一个包含许多不同客户的 go 项目的通用“go”目录。


萧十郎
浏览 242回答 3
3回答

郎朗坤

是的,GOPATH是目录列表(如PATH)。跑去go help gopath了解详情。例如,在 Linux 上,我有:$ go envGOROOT="/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 get 再次获取的 Go 包。我的第二个工作区用于我所有的个人 Go 包以及我可能想要“收藏”或进行一些开发的任何其他包。我将我经常使用的东西从第一个工作区移到第二个工作区。我的第三个工作区专用于我工作中的私有 Go 包及其依赖项。将我的工作包与我的所有个人物品分开很方便,这样它们就不会相互妨碍。

繁星淼淼

是的。引用 Go 本身:$ go help gopathGo 路径用于解析导入语句。它由 go/build 包实现并记录在其中。GOPATH 环境变量列出了查找 Go 代码的位置。在 Unix 上,该值是一个以冒号分隔的字符串。在 Windows 上,该值是以分号分隔的字符串。在计划 9 上,该值是一个列表。必须将 GOPATH 设置为在标准 Go 树之外获取、构建和安装包。GOPATH 中列出的每个目录都必须具有规定的结构:src 目录包含源代码。src 下面的路径决定了导入路径或可执行文件名称。...
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go