看起来情况是供应商sharedproject
的github.com/go-openapi/spec
依赖myproject
项同时从
.sharedproject
github.com/go-openapi/spec
GOPATH
现在,当您提到github.com/go-openapi/spec
in 时sharedproject
,它指的是 vendor 目录中的包,这在技术上与 in 中的同一个包不同GOPATH
,即使两者具有相同的内容。因此,当您将*github.com/go-openapi/spec.Operation
from类型的变量传递给myproject
in 中的函数时sharedproject
,该类型的包与预期的不同并且编译失败。
要解决此问题,请确保sharedproject
在内部出售myproject
。当您这样做时,dep ensure
会将sharedproject
没有其供应商目录的副本放入myproject
供应商目录。在此之后,两者都myproject
将sharedproject
使用github.com/go-openapi/spec
来自myproject
供应商目录的包。
如果您sharedproject
经常更改并希望立即使用这些更改(在将更改推送到 Git 远程之前myproject
无法使用),这确实会使本地开发变得困难。dep
我会通过手动复制sharedproject
到供应商目录而不使用(当然不包括供应商目录)来解决这个问题。但请注意不要将那些手动复制的更改提交给 Git!myproject
dep