乐趣区

关于go:protocolbuffers-namespace-conflict

在运行 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…
退出移动版