在运行grpc服务,加载*.pb.go时可能会报抵触谬误,如文件名命名抵触:

其实针对文件名抵触的错误处理开发者有移除过:

  • https://github.com/protocolbu...
    起初发现有问题又加上了文件冲突检测了:
  • https://github.com/protocolbu...

protocol-buffers命名空间抵触的几种状况:

留神package和go_package没有必然联系,上面说的package时proto外面的package不是go的引入包
  • file抵触, 注册的时候会查看文件(即source)抵触
  • <pkg name>.<entity name>不能抵触,<pkg name>.<entity name>也不能和<pkg name>抵触。如package叫"A.B", 如果此时另外一个package叫"A",外面有个"B"的message,那么这个message的fullName叫做“A.B”就会和后面的package "A.B"抵触。package的名字能够雷同,比方能够有两个package都叫"A"

protocol buffer抵触查看相干的代码:

https://github.com/protocolbu...
filesByPath次要查看文件抵触, descsByName来查看各类型之间fullName有没有互相抵触

如果切实须要更改抵触解决策略,能够运行时指定命令或者配置环境变量:

参考:

  • https://developers.google.com...