[英]Go - Do I have one workspace for all projects, or one workspace per project?
使用Go
如何组织项目? 我对工作区部分感到有点困惑。 我已经阅读了以下内容: https : //golang.org/doc/code.html#Workspaces ...这部分让我失望了:
典型的工作空间包含许多包含许多包和命令的源存储库。 大多数Go程序员将他们所有的Go源代码和依赖项保存在一个工作区中。
这是否意味着我创建的每个项目都是一个单独的工作区? 例如,如果两个项目使用相同的包,我将在我的计算机上有两个该包的副本。
或者,这是否意味着您有一个主工作区,您的项目共享这些包?
有点困惑。
我个人希望每个项目都有不同的GOPATH。 如果您可以使用工具自动化该过程,则可以使用vg来管理项目的不同GOPATH。
整洁的一点是它与大多数shell集成并在你cd
它们时自动检测项目。
到目前为止,当我想使用不同版本的Go或者我想将我的私人作品与孩子和我喜欢的代码分开时,我使用不同的工作区。 此外,如果我想玩一些开源代码,但想要一个简单的方法来清理它。
就像是
mk /tmp/tmpgo
cd /tmp/tmpgo
# Copy or edit a setenv file
. setenv # I use bash
setenv文件看起来像这样。
export GOROOT=$HOME/go16
export GOPATH=$PWD
export GOBIN=$GOPATH/bin
export PATH=$GOROOT/bin:$GOPATH/bin:$PATH
export PS1='\[\033[01;32m\]workspacenamehere\[\033[01;33m\] \W\[\033[00m\] '
这给了我一个go工作区,它有自己的bin,src,pkg子目录。 我可以得到任何我想要的东西。 如果我愿意,我可以删除整个临时目录。 从像github.com这样的存储库中获取东西的趋势是从其他贡献者那里获得许多包,但是因为它将它们全部放入一个干净的src子目录中,所以很容易使用find并查看已被删除的内容。 后来再次从高清中删除所有内容变得更加容易。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.