Go语言学习指南:惯例模式与编程实践
上QQ阅读APP看书,第一时间看更新

1.2 Go的工作空间

自从2009年推出Go以来,在Go开发者如何组织代码和依赖项方面发生了多次变化。由于这种重大变化,出现了许多相互矛盾的建议,而且大部分都已经过时了。

对于现代的Go开发,规则其实很简单:你可以按照合适的方式自由地组织你的项目。

然而,Go仍然希望设置一个工作空间,用于存放使用go install安装的第三方Go工具(参见1.3.2节)。默认情况下,这个工作空间位于$HOME/go,这些第三方工具的源代码存储在$HOME/go/src,编译后的二进制文件存储在$HOME/go/bin。你可以使用默认的工作空间,也可以通过设置$GOPATH环境变量来指定不同的工作空间。

无论你是否使用默认位置,最好显式定义GOPATH,并将$GOPATH/bin目录放在可执行路径中。显式定义GOPATH可以明确Go工作空间的位置,而将$GOPATH/bin添加到可执行路径中可以更容易地运行通过go install安装的第三方工具,我们将稍后讨论。

如果你在类UNIX系统上使用bash,请在.profile中添加以下几行(如果你使用的是zsh,请将这几行添加到.zshrc中):

你需要对$HOME/.profile执行source命令,使这些更改在当前控制台窗口中生效。

在Windows系统中,在命令提示符下运行以下命令:

运行这些命令后,必须关闭当前的命令提示符,然后打开一个新的命令提示符,这些更改才会生效。

Go工具还使用了其他环境变量进行设置,你可以使用go env命令来获得完整的列表以及每个变量的简要说明。其中许多变量用来控制底层行为,因此可以忽略,但是我们在讨论模块和交叉编译时,将会涉及其中的一些变量。

 一些在线资源告诉你要设置GOROOT环境变量。这个变量指定了Go开发环境的安装位置。但现在已经不需要这样做了,go工具会自动解决这个问题。