Dep混淆了供应商中的项目与GOPATH中的项目

时间:2019-04-05 11:25:20

标签: go dependencies dependency-management

我有projectA,它从projectB导入软件包。 两者都存在于GOPATH中。 我将dep用于依赖项管理,并将projectB作为依赖项添加到projectA的Gopkg.toml中。

如果我从projectA的供应商目录中清除了这个projectB,或者将其显式添加到ignored = ["projectB"],则可以正常编译。 否则会出现以下错误:

"gitlab.internal.com/client/vendor/gitlab.internal.com/runtime/protocol/client".Connector does not implement "gitlab.internal.com/runtime/protocol/client".Connector (wrong type for ApplicationContext method)
        have ApplicationContext() *"gitlab.internal.com/client/vendor/gitlab.internal.com/runtime/core".ApplicationContext
        want ApplicationContext() *"gitlab.internal.com/runtime/core".ApplicationContext

与上面的“ have”和“ want”包的唯一区别是它来自何处。 (一个来自GOPATH,另一个来自projectA的供应商/,但存在此编译问题)

我有以下问题:

  1. 为什么要搜索GOPATH,因为它在 供应商/? (为什么它声明它只想从这个地方“依赖”!?)
  2. 是否有办法让dep选择依赖项 明确地来自供应商/?

从GOPATH中删除projectB也不能解决问题。 这是什么问题?

0 个答案:

没有答案