如何在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
相关产品推荐
相关产品推荐

