【问题标题】:How to do a Go project workspace to work with dependencies tools and go tools?如何做一个 Go 项目工作区以使用依赖项工具和 Go 工具?
【发布时间】:2014-11-14 23:25:34
【问题描述】:

我有一个里面有包的项目:

  • 项目包“root”:a/b/c(例如github/b/c)
  • a/b/c 我们有很多包(p1,p2 ...)
  • 项目按照How to Write Go Code官方推荐进行管理。本地项目路径为:$GOPATH/src/a/b/c。此外,所有导入都“不是相对的”。
  • 该项目具有 go get-able 依赖项

现在我想使用一些依赖管理工具,例如 gomgodep。这个工具中的每一个都会在存储库中创建一个额外的目录,并将所有供应商依赖项放在那里。它还使用GOPATH 并将其设置为该供应商目录。假设该工具会将所有供应商放入path_to_project/.vendor - 成为新的GOPATH

我想使用其中一种 go 工具(gofmtgorename、...)来了解我的项目和供应商目录中的包。问题是如果GOPATH=path_to_project/.vendorgodep 这样做)那么工具不知道我项目中的包。

对此的一个想法是在外壳端编辑器中设置GOPATH=path_to_project/.vendor:GOPATH。或者用gom exec调用每个命令(gom在上面的命题中设置了一个GOPATH)

有没有现成的自动解决方案?

最终目标是将 go 项目与指定的依赖版本(如 git 提交)捆绑在一起,并使工具 + 编辑器 (vim/emacs) 与这些工具一起使用。

【问题讨论】:

  • 我使用 godep 并且只是更新我的 GOPATH。 GOPATH=`godep path`:$GOPATH

标签: vim emacs go dependency-management


【解决方案1】:

如果你使用的是 godep,你可以像这样在 go 命令前加上 godep:

godep go build

godep go fmt 

【讨论】:

  • gom 也是如此。可以通过以下方式执行任何需要更新 GOPATH 的命令:gom exec <your command> [args...]
猜你喜欢
  • 1970-01-01
  • 2018-06-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-27
  • 1970-01-01
  • 2019-04-21
  • 1970-01-01
相关资源
最近更新 更多