将GOPATH设置为我的工作区的原因是什么?

时间:2019-02-01 14:43:25

标签: go package gopath

我到处都读到我的GOPATH必须设置为我的工作区。如果我这样做并使用go get从例如github获取软件包,尽管它们都被添加到了我的工作区中,但由于它会使我的工作区杂乱无章,所以我觉得它没有什么用处。我希望在工作区中找到我的代码和仅我的代码。

因此,我现在在~/repos/go中有自己的存储库,并将我的GOPATH保留为默认~/go。这很完美。我导入的所有库都生活在~/go中,这使我自己的工作场所~/repos/go保持整洁。这对我来说很有用,所以我不确定为什么这不是推荐的工作方式。

我想念什么吗?是否有我遇到的问题或功能无法通过这种方式工作?

欢迎所有提示!

[EDIT]解释为什么我的问题与this question不同:我知道GOPATH的作用(定义使用go get时放置软件包的位置以及从中导入软件包的位置),但是我不知道为什么您需要将公共代码与自己的代码放在同一位置。事实证明没有必要,正如@peterSO在我下面接受的(出色)答案中所述。

2 个答案:

答案 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是一个列表,将包放入第一个条目。