依赖是围棋的一个问题,但是这是新的东西:直接依赖于库B
和C
依赖三角
B
- 应用
A
直接取决于库C
如果我们在应用代码A
中有这样的事情:
funcyInstance := &C.FuncyObject{}
B.CleverFunction(funcyInstance)
当LIB B
:
func CleverFunction(arg *C.FuncyObject) {}
它提出了一个错误:
cannot use funcyInstance (type "*A/vendor/github.com/C".FuncyObject) as type "*B/vendor/github.com/C".FuncyObject in argument to B.CleverFunction
我使用滑翔作为一个依赖管理。
我知道这种依赖关系的配置会导致存在几种类型而不是单个类型(对于所有库),并且可能它只是Go的反模式。无论如何...如何解决这个问题?
你不应该嵌套供应商目录。它看起来像'glide'有一个'--strip-vendor'选项,而不是因为某些原因默认。 – JimB