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

