266.6. 生成 Java 类
Protobuf SDK 提供了一个编译器,它将为在 .proto 文件中定义的格式生成 Java 类。如果您的操作系统受 Protobuf Java 代码生成器 maven 插件支持,您可以通过将以下配置添加到 pom.xml 来自动化生成 protobuf Java 代码:
在项目 pom.xml 的 < build> 标签中插入操作系统和 CPU 架构检测扩展,或者手动设置 ${os.detected.classifier} 参数
<extensions> <extension> <groupId>kr.motd.maven</groupId> <artifactId>os-maven-plugin</artifactId> <version>1.4.1.Final</version> </extension> </extensions>
插入 gRPC 和 protobuf Java 代码生成器插件 & lt;plugins > 项目 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>
您还可以为手动所需的任何其他支持语言运行编译器。
protoc --java_out=. ./proto/addressbook.proto
这将生成一个名为 AddressBookProtos 的 Java 类,其中包含 Person 和 AddressBook 的内部类。还将为您实施构建器。生成的类实施 com.google.protobuf.Message,这是序列化机制所需的。因此,您的交换正文中只使用这些类非常重要。如果您试图使用未实现 com.google.protobuf.Message 的类,Camel 会在路由创建时抛出异常。使用生成的构建器从任何现有域类转换数据。