我到处都读到我的GOPATH
必须设置为我的工作区。如果我这样做并使用go get
从例如github获取软件包,尽管它们都被添加到了我的工作区中,但由于它会使我的工作区杂乱无章,所以我觉得它没有什么用处。我希望在工作区中找到我的代码和仅我的代码。
因此,我现在在~/repos/go
中有自己的存储库,并将我的GOPATH
保留为默认~/go
。这很完美。我导入的所有库都生活在~/go
中,这使我自己的工作场所~/repos/go
保持整洁。这对我来说很有用,所以我不确定为什么这不是推荐的工作方式。
我想念什么吗?是否有我遇到的问题或功能无法通过这种方式工作?
欢迎所有提示!
[EDIT]解释为什么我的问题与this question不同:我知道GOPATH
的作用(定义使用go get时放置软件包的位置以及从中导入软件包的位置),但是我不知道为什么您需要将公共代码与自己的代码放在同一位置。事实证明没有必要,正如@peterSO在我下面接受的(出色)答案中所述。
答案 0 :(得分:3)
go help gopath
Go搜索GOPATH中列出的每个目录以查找源代码,但是 新软件包始终会下载到 列表。
$GOPATH
是目录列表。例如,在Linux上,
export GOPATH=$HOME/gopublic:$HOME/goprivate
go get
将所有下载内容置于列表中的第一个目录:$HOME/gopublic
。将所有软件包放在列表的第二个目录中:$HOME/goprivate
。
答案 1 :(得分:0)
['first', 'second', 'third', 'fourth', 'missing']
是golang工具链在您尝试编译代码时所查看的默认目录。 设置为默认值是100%必要,就好像我没记错。
正如peterSO上文所述,GOPATH
是一个列表,将包放入第一个条目。