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