2

我到处都读到我GOPATH必须设置为我的工作区。如果我这样做并用于go get从例如 github 获取包,它们都会添加到我的工作区中,但我觉得这并不是特别有用,因为它使我的工作区变得混乱。在我的工作区中,我希望只找到我的代码和我的代码。

所以我现在有我自己的 repos~/repos/go并将 my 保留GOPATH为默认值~/go。这很完美。我导入的所有图书馆都住在里面~/go,这让我自己的工作场所保持~/repos/go整洁。这对我很有用,所以我不确定为什么这不是推荐的工作方式。

我错过了什么吗?有没有我破坏的东西或者功能不能以这种方式工作?

欢迎所有提示!

[编辑]解释为什么我的问题与这个问题不同:我知道是什么GOPATH(在使用 go get 时定义一个放置包的地方和一个从中导入包的地方),但我不知道为什么你需要公开代码与您自己的代码在同一位置。事实证明没有必要,正如@peterSO 在我在下面接受的(优秀)答案中所解释的那样。

4

2 回答 2

3

go help gopath

Go 搜索 GOPATH 中列出的每个目录以查找源代码,但新包总是下载到列表中的第一个目录中。


$GOPATH是一个目录列表。例如,在 Linux 上,

export GOPATH=$HOME/gopublic:$HOME/goprivate

go get将所有下载内容放在列表的第一个目录中:$HOME/gopublic. 将所有包放在列表中的第二个目录中:$HOME/goprivate.

于 2019-02-01T15:04:42.837 回答
0

GOPATH是 golang 工具链在您尝试编译代码时查看的默认目录。从技术上讲,设置自定义不是 100%,好像我没记错一样,它默认为~/go/.

正如 peterSO 上面所说,GOPATH是一个列表并将包放入第一个条目。

于 2019-02-01T15:18:12.660 回答