协议缓冲区:如何导入?

时间:2011-10-30 19:33:24

标签: 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;
}

这里的问题是“CustomObj”被称为“未解析的参考”。 因此,我试图将第二个文件导入第一个文件:

import "com/test/model/firstFile.proto"

package com.test.model;    

message ProtoModel  {
    required CustomObj custom=1;
}

我仍然得到同样的问题!!

1 个答案:

答案 0 :(得分:5)

import语句是相对于您调用protoc的位置的文件夹。 看起来你已将它视为相对于包而言。

e.g。如果(像我一样)你将这两个文件存储在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