【发布时间】:2018-05-19 18:11:56
【问题描述】:
我正在尝试使用 grpc "google.golang.org/grpc" 包。
import (
"github.com/xxxx/yyyy"
"google.golang.org/grpc"
)
conn, err := grpc.Dial(address)
pppp.NewXXXXClient(conn) // where pppp is from github.com/xxxx/yyyy
如果github.com/xxxx/yyyy 也提供相同的 grpc 包会怎样?
我收到如下编译错误
cannot use conn (type *"google.golang.org/grpc".ClientConn) as type
*"github.com/xxxx/yyyy/vendor/google.golang.org/grpc".ClientConn
我该如何解决这个问题?
【问题讨论】:
-
显示触发编译错误的那一行。
-
@zerkms 现在已添加。
-
您不能从多个路径导入相同的包。将供应商包从您的依赖项移动到顶级供应商目录。
-
嵌套的 vendoring 是一个真正的痛苦处理,没有解决方案是理想的。您最简单的选择是从 xxxx/yyyy 手动删除 vendored 包。如果因为使用不同版本的 grpc 而失败,请将该版本提供给您自己的项目,并将其从外部项目中删除。
-
@SteveHe:您应该提供该软件包,以便您可以控制它。