264.5. 生成 Java 类


Protobuf SDK 提供了一个编译器,它会为在 .proto 文件中定义的格式生成 Java 类。如果您的操作系统由 Protobuf Java 代码生成器 maven 插件支持,您可以通过在 pom.xml 中添加以下配置来自动生成 Java 代码:

在项目 pom.xml 或设置 ${os.detected.classifier} 参数的 < build > 标签内插入操作系统和 CPU 架构检测扩展

<extensions>
  <extension>
    <groupId>kr.motd.maven</groupId>
    <artifactId>os-maven-plugin</artifactId>
    <version>1.4.1.Final</version>
  </extension>
</extensions>
Copy to Clipboard Toggle word wrap

插入 gRPC 和 protobuf Java code generator 插件 &lt ;plugins&gt; tag of the project pom.xml

<plugin>
  <groupId>org.xolstice.maven.plugins</groupId>
  <artifactId>protobuf-maven-plugin</artifactId>
  <version>0.5.0</version>
  <extensions>true</extensions>
  <executions>
    <execution>
      <goals>
        <goal>test-compile</goal>
        <goal>compile</goal>
      </goals>
      <configuration>
        <protocArtifact>com.google.protobuf:protoc:${protobuf-version}:exe:${os.detected.classifier}</protocArtifact>
      </configuration>
    </execution>
  </executions>
</plugin>
Copy to Clipboard Toggle word wrap

您还可以手动运行任何需要的额外支持语言的编译器。

protoc --java_out=. ./proto/addressbook.proto

这将生成一个名为 AddressBookProtos 的 Java 类,其中包含 Person 和 AddressBook 的内部类。构建器也为您实施。生成的类实现 com.google.protobuf.Message,这是序列化机制所需要的。因此,只有这些类在交换的正文中使用很重要。如果您试图告诉 Data Format 使用没有实现 com.google.protobuf.Message 的类,Camel 将抛出一个例外。使用生成的构建器从任何现有域类转换数据。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat