将 POJO 转换为 AVRO 模式

问题描述 投票:0回答:1

给定一个 POJO(例如 User.java),是否有任何 Maven 插件可以在编译时将其转换为 AVRO 模式 avsc?

我尝试了

Schema schema = ReflectData.get().getSchema(User.class)
,但这种方法不会在编译时生成avsc。

非常感谢!

java maven avro pojo
1个回答
0
投票

您可以使用 avro-maven-plugin 和“induce”目标将 Pojo 类转换为 avsc 模式文件

<plugin>
            <groupId>org.apache.avro</groupId>
            <artifactId>avro-maven-plugin</artifactId>
            <version>1.11.3</version>
            <executions>
                <execution>
                    <phase>process-classes</phase>
                    <goals>
                        <goal>induce</goal>
                    </goals>
                    <configuration>
                        <javaSourceDirectories>${project.basedir}/target/generated-sources/annotations/src/main/java</javaSourceDirectories>
                        <allowNull>true</allowNull>
                    </configuration>
                </execution>
            </executions>
        </plugin>
© www.soinside.com 2019 - 2024. All rights reserved.