如何从现有protobuf文件创建javapojo?

如何从现有protobuf文件创建javapojo?,java,pojo,protocol-buffers,Java,Pojo,Protocol Buffers,我正在尝试将.proto(版本2.5)转换为JavaPOJO。比如说 从 到 但是官方协议不支持生成pojo方式的java文件 是否有任何工具可以从.proto文件自动生成pojo?此线程包含用于生成Java“nano”协议缓冲区变体的文档,这可能正是您要查找的: 否则,自行生成代码的最简单方法可能是使用google开源协议缓冲区代码生成器为协议缓冲区生成“”,然后迭代描述符(或者使用java poet之类的库)生成java代码。请看: 这是使用proto文件的“描述符” 我不保留评论或文档

我正在尝试将.proto(版本2.5)转换为JavaPOJO。比如说

但是官方协议不支持生成pojo方式的java文件


是否有任何工具可以从.proto文件自动生成pojo?

此线程包含用于生成Java“nano”协议缓冲区变体的文档,这可能正是您要查找的:

否则,自行生成代码的最简单方法可能是使用google开源协议缓冲区代码生成器为协议缓冲区生成“”,然后迭代描述符(或者使用java poet之类的库)生成java代码。

请看:

这是使用proto文件的“描述符”

  • 我不保留评论或文档
  • 没有能手或二传手
  • 每个.proto文件一个输出.java文件
然而,只要稍加努力,它就可以解决您的用例

示例.proto

syntax = "proto3";

message Article {
    string title = 1;
}

enum yesno {
  no = 0;
  yes = 1;
}
它将创建example.java

// Code generated by protoc-gen-pojo.

public enum yesno {
    no (0),
    yes (1),
}

public class Article {
    public String title;
}

当您尝试时发生了什么?太多的.proto文件,我需要一个工具。生成文件的Java“nano”变体也不是pojo样式。但是解析描述符可能是唯一的方法。。。在我的例子中,有一些proto文件来描述数据结构,但我不想用protobuf编译java,因为真正的数据格式是json。但多亏了老兄,我写了一个粗略的脚本,通过描述符生成pojo,效果很好。
syntax = "proto3";

message Article {
    string title = 1;
}

enum yesno {
  no = 0;
  yes = 1;
}
git clone https://github.com/sagroskin/protoc-gen-pojo.git
cd protoc-gen-pojo
go build
# Run protobuf/bin/protoc with this plugin
protoc --plugin=./protoc-gen-pojo --proto_path=./ --pojo_out=./ example.proto
// Code generated by protoc-gen-pojo.

public enum yesno {
    no (0),
    yes (1),
}

public class Article {
    public String title;
}