如何用openapi-generator-maven-plugin生成仅含字段的模型并通过Lombok生成访问方法?
解决方案:仅生成含字段的OpenAPI模型并通过Lombok生成访问方法
完全可以实现,只需要在openapi-generator-maven-plugin的配置里做两处关键调整:
1. 关闭默认的访问方法生成
在插件的<configOptions>中添加配置,直接关闭getter、setter以及模型builder的自动生成,这样生成的模型类只会保留字段定义,不会附带任何手动编写的访问方法。
2. 通过Lombok注解自动生成访问方法
利用additionalModelTypeAnnotations配置项,给所有生成的模型类添加Lombok注解,让Lombok在编译阶段自动帮你生成需要的访问方法(以及equals、hashCode、toString等通用方法)。
完整Maven插件配置示例
<plugin> <groupId>org.openapitools</groupId> <artifactId>openapi-generator-maven-plugin</artifactId> <version>你的插件版本</version> <executions> <execution> <goals> <goal>generate</goal> </goals> <configuration> <inputSpec>${project.basedir}/src/main/resources/openapi.yaml</inputSpec> <generatorName>java</generatorName> <modelPackage>com.yourpackage.model</modelPackage> <!-- 关闭默认的访问方法与builder生成 --> <configOptions> <generateGetters>false</generateGetters> <generateSetters>false</generateSetters> <generateModelBuilders>false</generateModelBuilders> </configOptions> <!-- 添加Lombok注解,这里用@Data可生成getter、setter、equals等全套方法 --> <additionalModelTypeAnnotations>@Data</additionalModelTypeAnnotations> </configuration> </execution> </executions> <!-- 必须引入Lombok依赖 --> <dependencies> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>你的Lombok版本</version> </dependency> </dependencies> </plugin>
额外说明
- 如果你只需要生成getter和setter,不需要
@Data附带的其他方法,可以把additionalModelTypeAnnotations的值改成@Getter @Setter。 - 确保你的IDE已经安装了Lombok插件,并且项目正确引入了Lombok依赖,否则编译时会出现找不到方法的错误。
- 若使用的是
spring等其他生成器,核心配置逻辑一致,只需调整generatorName即可。
内容的提问来源于stack exchange,提问作者nixfuerdiecharts
相关产品推荐
相关产品推荐

