协议缓冲区:如何导入?
我有2个.proto文件:
第一档:
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; }
我仍然得到同样的问题!
import语句是相对于调用protoc
的位置的文件夹。 看起来你已经将它视为相对于包而不是它。
例如,如果(像我一样)将这两个文件存储在src/main/resources
,您将调用protoc,如下所示:
protoc src/main/resources/firstFile.proto src/main/resources/secondFile.proto --java_out=src/generated/java
并且您的import语句将import "src/main/resources/firstFile.proto"
如果要根据包名将文件存储在子文件夹中,则只需在顶级foldername之后相应地添加它。
HTH