‘go install’、‘Govendo install+;本地`和`戈文多安装+;供应商,^program`?

‘go install’、‘Govendo install+;本地`和`戈文多安装+;供应商,^program`?,go,govendor,Go,Govendor,使用Govendo时,go install、Govendo install+local和Govendo install+vendor、^program之间有什么区别 govendor install+vendor,^program要求生成并安装我的所有供应商软件包。但是它将安装到什么地方呢?它是否将我的项目和供应商的命令可执行文件安装到$GOPATH/bin,将我的项目和供应商的包对象安装到$GOPATH/pkg govendor install+local要求只在存储库中构建所有内容。那么这到

使用Govendo时,
go install
Govendo install+local
Govendo install+vendor、^program
之间有什么区别

govendor install+vendor,^program
要求生成并安装我的所有供应商软件包。但是它将安装到什么地方呢?它是否将我的项目和供应商的命令可执行文件安装到
$GOPATH/bin
,将我的项目和供应商的包对象安装到
$GOPATH/pkg

govendor install+local
要求只在存储库中构建所有内容。那么这到底意味着什么呢?它是否会创建
供应商/bin
供应商/pkg


如果我在项目中运行
go install
,会怎么样?这与上述两个命令有什么不同

Go最早是以一种全新的依赖关系管理和工作区文件夹结构理念出现的。项目所在的位置有一个严格的层次结构(位于
$gopath/src/site.com/user/project
),其他项目只需导入所有其他项目的最新版本。问题是,如果某个上游项目更改了API,那么您的项目将莫名其妙地崩溃。这就是供应商的作用所在

供应商是项目中的一个子目录,包含项目导入的
$gopath/src
下的所有内容。不同之处在于,当上游项目引入新功能和/或修复时,供应商不会更新。因此,您必须自己更新它。当go查找导入(从最新版本开始)时,它将首先检查供应商,然后在您的
$gopath
中查找最新版本,以防止构建因无明显原因而无法解释地中断

go install
将您的
$gopath
依赖项更新为最新版本;所有新项目和没有供应商的项目将使用的版本

govendor安装+供应商,^program
更新您特定的项目供应商依赖关系。这应该在单独的提交中完成;你应该
去测试;戈文多;git提交;进行测试
,以便检查更新是否会破坏项目

govendor install+local
显然只是构建项目


此外,你应该使用godep而不是govendo。它具有更好的工作流程;您的
$gopath
具有最新版本,然后您可以使用
godep update
更新项目。它在golang 1.10中也是标准的。

是的,使用
godep
(1)如果我的govendor项目与$GOPATH无关,为什么在我运行
go install
时它会更新$GOPATH依赖项?(2)
go安装
govendor安装+供应商,^program
是否会构建项目?你没提到。(3) 如果
govendor install+vendor,^program
govendor install+local
将构建项目,它将构建到哪个目录?
build将安装到哪个目录?(4) 我使用的是从godep切换到Govendo的
gin
。这就是我使用Govendo的原因。如果godep将成为golang 1.10的标准,为什么杜松子酒会放弃它?thanks@eduncan911我使用的是
gin
,它从
godep
切换到
govendo
。这就是为什么我要使用
govendo
。如果
godep
将成为golang 1.10中的标准,为什么
gin
放弃它并使用
govendo
?谢谢。
go install
只需在
$GOPATH
中安装和更新依赖项即可。它只是可用最新版本的全局缓存。您仍然可以在自己的项目中使用godep。只需运行go get x&&cd项目目录和godep保存