Go - 我是为所有项目设置一个工作区,还是每个项目有一个工作区?

使用时Go如何组织项目?我对工作区部分有点困惑。我读过以下内容:https : //golang.org/doc/code.html#Workspaces ... 这部分让我有点失望:

典型的工作区包含许多包含许多包和命令的源存储库。大多数 Go 程序员将所有 Go 源代码和依赖项保存在一个工作区中。

这是否意味着对于我创建的每个项目,它都是一个单独的工作区?例如,如果两个项目使用同一个包,我的计算机上就会有该包的两个副本。

或者,这是否意味着您有一个主工作区并且您的项目共享这些包?


一只甜甜圈
浏览 350回答 3
3回答

慕田峪9158850

我个人喜欢每个项目有一个不同的 GOPATH。如果您可以使用工具来自动化该过程,则可以使用vg,它将负责为您的项目管理不同的 GOPATH。巧妙的是它与大多数 shell 集成,并像您cd一样自动检测项目。

繁星coding

到目前为止,当我想使用不同版本的 Go 或者我想将我的私人工作与孩子们和我玩得开心的代码分开时,我会使用不同的工作区。此外,如果我想使用一些开源代码但想要一种简单的方法来清理它。就像是mk /tmp/tmpgocd /tmp/tmpgo# Copy or edit a setenv file. setenv  # I use bashsetenv 文件看起来像这样。export GOROOT=$HOME/go16export GOPATH=$PWDexport GOBIN=$GOPATH/binexport PATH=$GOROOT/bin:$GOPATH/bin:$PATHexport PS1='\[\033[01;32m\]workspacenamehere\[\033[01;33m\] \W\[\033[00m\] '这给了我一个带有自己的 bin、src、pkg 子目录的 go 工作区。我可以去拿我想要的任何东西。如果我愿意,稍后我可以删除整个临时目录。从诸如 github.com 之类的存储库中获取东西往往会从其他贡献者那里获取许多包,但是因为它将它们全部放入一个干净的 src 子目录中,所以很容易使用查找并查看已拉下的内容。后来再次从高清中删除所有内容就更容易了。

天涯尽头无女友

您有一个工作区,项目共享这些包。它在概述部分:Go 程序员通常将所有 Go 代码保存在一个工作区中。请注意,这与其他编程环境不同,在其他编程环境中,每个项目都有一个单独的工作区,并且工作区与版本控制存储库密切相关。编辑:如果您使用vendoring,您可以有效地为每个项目获得一个单独的工作区。这使事情更接近于其他编程语言的工作方式。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go