Java 协议缓冲区:如何导入?
我有2个.proto文件: 第一个文件:Java 协议缓冲区:如何导入?,java,protocol-buffers,Java,Protocol Buffers,我有2个.proto文件: 第一个文件: package com.test.model; message ProtoModel { required CustomObj custom=1; } package com.test.model; message CustomObj { required string smth=1; } 第二个文件: package com.test.model; message ProtoModel { required Cus
package com.test.model;
message ProtoModel {
required CustomObj custom=1;
}
package com.test.model;
message CustomObj {
required string smth=1;
}
第二个文件:
package com.test.model;
message ProtoModel {
required CustomObj custom=1;
}
package com.test.model;
message CustomObj {
required string smth=1;
}
这里的问题是“CustomObj”被称为“未解决的引用”。
因此,我尝试将第二个文件导入第一个文件:
import "com/test/model/firstFile.proto"
package com.test.model;
message ProtoModel {
required CustomObj custom=1;
}
我仍然得到同样的问题 导入语句是相对于调用
protoc
的位置的文件夹。
看起来您将其视为相对于包
e、 g.如果(像我一样)您将这两个文件都存储在src/main/resources
中,您将按如下方式调用protoc:
protoc src/main/resources/firstFile.proto src/main/resources/secondFile.proto --java_out=src/generated/java
您的导入语句将是import“src/main/resources/firstFile.proto”
如果要根据包名将文件存储在子文件夹中,则只需在顶级foldername之后添加相应的文件即可
HTH我怀疑这是一个包限定符问题。。。试着把这两个都放在一个包中,并用包名限定消息名——实际上我就是这么做的;我把它们都放在一个文件中以节省一些时间。。。Thx:)当我试图将它们添加到一个文件中时,我遇到了以下错误:实际上我就是这么做的;我把它们都放在一个文件中以节省一些时间。。。Thx:)当我尝试在一个文件中添加它们时,出现以下错误: