为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Go
一只甜甜圈 2021-12-27 16:04:38
使用时Go如何组织项目?我对工作区部分有点困惑。我读过以下内容:https : //golang.org/doc/code.html#Workspaces ... 这部分让我有点失望:典型的工作区包含许多包含许多包和命令的源存储库。大多数 Go 程序员将所有 Go 源代码和依赖项保存在一个工作区中。这是否意味着对于我创建的每个项目,它都是一个单独的工作区?例如,如果两个项目使用同一个包,我的计算机上就会有该包的两个副本。或者,这是否意味着您有一个主工作区并且您的项目共享这些包?
查看完整描述

3 回答

?
慕田峪9158850

TA贡献1794条经验 获得超8个赞

我个人喜欢每个项目有一个不同的 GOPATH。如果您可以使用工具来自动化该过程,则可以使用vg,它将负责为您的项目管理不同的 GOPATH。

巧妙的是它与大多数 shell 集成,并像您cd一样自动检测项目。


查看完整回答
反对 回复 2021-12-27
?
繁星coding

TA贡献1797条经验 获得超4个赞

到目前为止,当我想使用不同版本的 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\] '

这给了我一个带有自己的 bin、src、pkg 子目录的 go 工作区。我可以去拿我想要的任何东西。如果我愿意,稍后我可以删除整个临时目录。从诸如 github.com 之类的存储库中获取东西往往会从其他贡献者那里获取许多包,但是因为它将它们全部放入一个干净的 src 子目录中,所以很容易使用查找并查看已拉下的内容。后来再次从高清中删除所有内容就更容易了。


查看完整回答
反对 回复 2021-12-27
?
天涯尽头无女友

TA贡献1831条经验 获得超9个赞

您有一个工作区,项目共享这些包。

它在概述部分

Go 程序员通常将所有 Go 代码保存在一个工作区中。

请注意,这与其他编程环境不同,在其他编程环境中,每个项目都有一个单独的工作区,并且工作区与版本控制存储库密切相关。

编辑:如果您使用vendoring,您可以有效地为每个项目获得一个单独的工作区。这使事情更接近于其他编程语言的工作方式。


查看完整回答
反对 回复 2021-12-27
  • 3 回答
  • 0 关注
  • 349 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号