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

如何配置openapi-generator-maven-plugin不生成fromJson/toJson方法

问题

我正在使用openapi-generator-maven-plugin生成模型源文件,当前配置会为每个模型类生成fromJson和toJson方法。我不需要这些方法,且它们会引入项目不需要的依赖,请问能否通过配置插件来避免生成这些JSON方法?

当前插件配置如下:

<plugin>
    <groupId>org.openapitools</groupId>
    <artifactId>openapi-generator-maven-plugin</artifactId>
    <version>6.3.0</version>
    <executions>
        <execution>
            <goals>
                <goal>generate</goal>
            </goals>
            <configuration>
                <inputSpec>${project.basedir}/src/main/resources/api.yaml</inputSpec>
                <generatorName>java</generatorName>
                <language>Java</language>
                <output>${project.build.directory}/generated-sources/swagger</output>
                <configOptions>
                    <sourceFolder>src/gen/java/main</sourceFolder>
                    <!-- Add custom annotation for model sources to achieve builder pattern -->
                    <additionalModelTypeAnnotations>@lombok.experimental.SuperBuilder @lombok.AllArgsConstructor</additionalModelTypeAnnotations>
                </configOptions>
                <modelPackage>my.package</modelPackage>
                <!-- Only generate the model since we need it for deserialization -->
                <generateApis>false</generateApis>
                <generateApiDocumentation>false</generateApiDocumentation>
                <generateApiTests>false</generateApiTests>
                <generateModelDocumentation>false</generateModelDocumentation>
                <generateModelTests>false</generateModelTests>
                <generateSupportingFiles>false</generateSupportingFiles>
                <generateModels>true</generateModels>
            </configuration>
        </execution>
    </executions>
</plugin>
解决方案

完全可以通过配置插件禁用fromJson和toJson方法的生成,只需在configOptions中添加两个配置项:

  • <serializableModel>false</serializableModel>:禁用序列化相关方法(包括JSON转换方法)的生成
  • <useJsonAnnotation>false</useJsonAnnotation>:避免引入JSON序列化相关的注解依赖

修改后的完整插件配置如下:

<plugin>
    <groupId>org.openapitools</groupId>
    <artifactId>openapi-generator-maven-plugin</artifactId>
    <version>6.3.0</version>
    <executions>
        <execution>
            <goals>
                <goal>generate</goal>
            </goals>
            <configuration>
                <inputSpec>${project.basedir}/src/main/resources/api.yaml</inputSpec>
                <generatorName>java</generatorName>
                <language>Java</language>
                <output>${project.build.directory}/generated-sources/swagger</output>
                <configOptions>
                    <sourceFolder>src/gen/java/main</sourceFolder>
                    <!-- Add custom annotation for model sources to achieve builder pattern -->
                    <additionalModelTypeAnnotations>@lombok.experimental.SuperBuilder @lombok.AllArgsConstructor</additionalModelTypeAnnotations>
                    <!-- 禁用JSON转换方法及相关依赖 -->
                    <serializableModel>false</serializableModel>
                    <useJsonAnnotation>false</useJsonAnnotation>
                </configOptions>
                <modelPackage>my.package</modelPackage>
                <!-- Only generate the model since we need it for deserialization -->
                <generateApis>false</generateApis>
                <generateApiDocumentation>false</generateApiDocumentation>
                <generateApiTests>false</generateApiTests>
                <generateModelDocumentation>false</generateModelDocumentation>
                <generateModelTests>false</generateModelTests>
                <generateSupportingFiles>false</generateSupportingFiles>
                <generateModels>true</generateModels>
            </configuration>
        </execution>
    </executions>
</plugin>

补充说明:

  • serializableModel设为false后,生成的模型类不会实现Serializable接口,同时也不会生成fromJson、toJson这类序列化相关方法
  • useJsonAnnotation设为false会阻止插件添加Jackson等JSON库的注解,彻底避免引入不必要的依赖

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 20:50:28