Protobuf:对不同的包使用相同的消息名称
Protobuf: to use same Message name with different packages
我正在使用 protobuf java,以下是 .proto
// service1.proto
option java_package = "package";
option java_outer_classname = "Proto1";
message M {
... // some definition
}
和
// service2.proto
option java_package = "package";
option java_outer_classname = "Proto2";
message M {
... // some different definition
}
编译时,在 service2.proto
中抛出错误,表示 "M" is already defined in service1.proto
但是从包和生成的代码来看,它们应该是 package.Proto1.M
和 package.Proto2.M
,这是冲突吗?
“包”也是一个.proto概念(不仅仅是language/framework概念);如果您需要同时涉及两种模式,添加
可能会有用
package Proto1;
到service1.proto和
package Proto2;
到service2.proto
或者,如果 M
在两个地方实际上相同:将 M
移动到不同的单个文件,并使用 service1.proto 和 service2.proto
我正在使用 protobuf java,以下是 .proto
// service1.proto
option java_package = "package";
option java_outer_classname = "Proto1";
message M {
... // some definition
}
和
// service2.proto
option java_package = "package";
option java_outer_classname = "Proto2";
message M {
... // some different definition
}
编译时,在 service2.proto
中抛出错误,表示 "M" is already defined in service1.proto
但是从包和生成的代码来看,它们应该是 package.Proto1.M
和 package.Proto2.M
,这是冲突吗?
“包”也是一个.proto概念(不仅仅是language/framework概念);如果您需要同时涉及两种模式,添加
可能会有用package Proto1;
到service1.proto和
package Proto2;
到service2.proto
或者,如果 M
在两个地方实际上相同:将 M
移动到不同的单个文件,并使用 service1.proto 和 service2.proto