我有一个包含内部包的项目:
-
project package "root":
a/b/c
(例如github / b / c) -
在
a/b/c
我们有很多包(p1,p2 ......) -
项目根据How to Write Go Code官方建议进行管理 . 本地项目路径是:
$GOPATH/src/a/b/c
. 所有进口货物都是"not relative" . -
该项目具有可获得的依赖关系
现在我想使用一些依赖管理器工具,如gom或godep . 每个工具都在存储库中创建一个额外的目录,并将所有供应商依赖项放在那里 . 它也与 GOPATH
一起使用并将其设置为该供应商目录 . 让我们假设该工具将所有供应商放入 path_to_project/.vendor
- 成为新的 GOPATH
.
我想使用其中一个go工具( gofmt
, gorename
,...)了解我的项目和供应商目录中的包 . 问题是如果 GOPATH=path_to_project/.vendor
(godep这样做)那么工具不知道我的项目中的包 .
一个想法是在shell端编辑器中设置 GOPATH=path_to_project/.vendor:GOPATH
. 或者使用 gom exec
调用每个命令(gom在上面的命题中设置GOPATH)
Is there any ready and automatic solution for this?
最终目标是将项目与指定的依赖项版本(如git commits)捆绑在一起,并使工具编辑器(vim / emacs)使用此工具 .
1 回答
如果你正在使用godep,你可以在go命令前面添加godep,如下所示:
要么