You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Maven的jsonschema2pojo插件中修改默认生成的OutputSchema.java类名

解决jsonschema2pojo Maven插件自定义根类名的问题

嘿,这个问题我之前折腾过好一会儿!其实jsonschema2pojo的Maven插件完全支持自定义根类名,只是这个配置项不是最显眼的那种,我来给你一步步说清楚怎么配置:

核心配置项:className

你需要把原来pom里简单的<source>字符串改成一个包含<path>和<className>的配置块,在<sources>标签下单独为每个schema文件指定根类名。

举个修改后的插件配置示例:

<plugin>
    <groupId>org.jsonschema2pojo</groupId>
    <artifactId>jsonschema2pojo-maven-plugin</artifactId>
    <version>1.2.1</version> <!-- 建议使用最新稳定版本 -->
    <executions>
        <execution>
            <goals>
                <goal>generate</goal>
            </goals>
            <configuration>
                <sources>
                    <!-- 这里把原来的字符串source改成带配置的块 -->
                    <source>
                        <path>src/main/resources/your-schema-file.json</path>
                        <!-- 填写你想要的完整类名(包含包名) -->
                        <className>com.yourcompany.project.model.YourCustomRootClass</className>
                    </source>
                </sources>
                <!-- 其他原有配置(比如targetPackage、annotationStyle等)可以保留 -->
                <targetPackage>com.yourcompany.project.model</targetPackage>
                <annotationStyle>jackson2</annotationStyle>
            </configuration>
        </execution>
    </executions>
</plugin>

关键注意点

  • className必须包含完整的包路径,这样生成的类会自动放到对应包下,避免和其他类冲突;
  • 如果有多个schema文件需要生成不同的根类,只需要在<sources>下添加多个<source>块,每个块单独配置<path>和<className>即可;
  • 这个配置会覆盖插件默认生成的OutputSchema类名,完全按照你指定的名称生成根类。

我之前就是这么配置解决了和你一样的问题,你可以试试这个方案!

内容的提问来源于stack exchange,提问作者Andrey Sloutsman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 08:00:50