Java 协议缓冲区:如何导入?

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

我有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 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:)当我尝试在一个文件中添加它们时,出现以下错误: