如何仅使用供应商依赖项运行go命令?

如何仅使用供应商依赖项运行go命令?,go,vendor,Go,Vendor,我一直遇到这样一个问题:我在本地安装依赖项,它工作正常,我推到continuous integration server,然后它崩溃了,因为我忘记了godep save./…依赖项 如何运行go命令,但需要导入vendor 编辑: 我使用的是go1.6。如果第三方依赖项未解析为供应商,我希望该命令失败。换句话说,有没有一种方法可以在测试期间停止解析$GOPATH中的依赖项 我无法更改环境变量,因为这样就无法解析任何项目模块。如何强制供应商依赖关系?无法阻止生成器扫描包的$GOPATH。看起来,您

我一直遇到这样一个问题:我在本地安装依赖项,它工作正常,我推到continuous integration server,然后它崩溃了,因为我忘记了
godep save./…
依赖项

如何运行
go
命令,但需要导入
vendor

编辑:

我使用的是
go1.6
。如果第三方依赖项未解析为供应商,我希望该命令失败。换句话说,有没有一种方法可以在测试期间停止解析
$GOPATH
中的依赖项


我无法更改环境变量,因为这样就无法解析任何项目模块。如何强制供应商依赖关系?

无法阻止生成器扫描包的
$GOPATH
。看起来,您使用的不是很好的流来管理依赖关系。我建议您使用
glide
进行售货

最推荐的工作流程:

  • 将依赖项的实际列表保存在
    glide.yaml
  • glide.yaml
    中进行任何更改后,运行
    glide up
    。它将把所有依赖项安装到
    供应商
    目录,并生成带有固定软件包版本的
    glide.lock
    。提交
    glide.lock
    给VCS不要手动更改
    glide.lock
  • 不要向VCS提交
    供应商
    目录
  • 在CI上运行
    glide install
    ,或通过
    glide生成服务器来安装依赖项。将
    锁定到
    供应商
  • 建造

  • godep
    glide
    的迁移可能很容易,因为
    glide
    有一个命令可以将
    Godeps.json
    迁移到
    glide.yaml

    这对我来说是个模糊的问题。你用的是什么围棋版本?您是否考虑过尝试go在1.5及以上版本中支持的
    供应商
    目录?@squiguy。我希望它更有意义。这是需要通过您向供应商提供的工具来完成的。我不知道godep是否可以列出丢失的软件包,但我知道像
    Govendo
    glide
    这样的其他软件包可以用来列出丢失的软件包。如果你想在提交、推送等过程中检查一些东西,这就是git钩子的作用。我知道这不是建议其他工具的答案,但这就是我使用它的原因。