Skip to content

请问下java的.proto文件存在import引用其它文件如何加载 #263

@sue602

Description

@sue602

有文件1,文件名为 a.proto 内容如下

syntax = "proto2";
option java_package = "bf.message.game"; 
option java_outer_classname = "AntiqueMessage"; 

package bf.messages.game.EngineMessage;

message MsgGetReq_55012{
    optional CommonMsgMessage.MsgResources res= 1;
    optional int64 time=2; 
}
message MsgGetResp_55012{
    
}

有文件2,文件名为 b.proto 内容如下

syntax = "proto2";
option java_package = "bf.message.game"; 
option java_outer_classname = "CommonMsgMessage"; 

package bf.messages.game.CommonMsgMessage;

message MsgResources {
    optional int32 id = 1; 
    optional string num = 2; 
}

加载:

local pb = require "pb"
local protoc = require "protoc"
local pbdir = "./"
local protofiles = {a.proto,b.proto}
protoc:addpath(pbdir)

for _, proto_filename in ipairs(protofiles) do
     local proto = protoc.new()
     proto:addpath(pbdir)
     proto:loadfile(proto_filename)
end

local dd = {res= {id=1,num=3}, time= 3}
local bytes = pb.encode("MsgGetReq_55012", dd)  -- 这样加载失败
-- local bytes = pb.encode("AntiqueMessage.MsgGetReq_55012", dd)  -- 这样也是失败的

请问下要如何才能正确加载这种有import引用呢, 感谢

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions