错误描述
使用protobuf-maven-plugin生成proto代码时,出现类似错误:
“xxx” is already defined in file “xxx.proto”
[ERROR] PROTOC FAILED: gateway/user.proto:19:9: "UserService" is already defined in file "common/user.proto".
[ERROR] E:\Projects\ranger2\game-server\game-proto\src\main\proto\common\user.proto [0:0]: gateway/user.proto:19:9: "UserService" is already defined in file "common/user.proto".
proto文件
为了便于理解错误,给出现错误时的proto文件内容。
两个proto文件位于不同的目录。

common目录下的proto内容。

gateway目录下的proto内容。

问题解决方案
给proto文件设置package属性。
也就是关闭这两个文件的第三行注释。
package game.proto.common.user;
package game.proto.gateway.user;
成功运行


思绪
以前遇到过这个问题时稍微查了一下资料(没有找出原因,觉得是自己将proto文件存放在同一个目录下导致的),当时比较着急完成功能需求,就手动改了冲突的名字。
没想到今天又遇到了这个问题,所以就往命名空间方向查找问题。
461

被折叠的 条评论
为什么被折叠?



