OpenAPI Generator中如何为特定模型单独配置Lombok注解?
使用OpenAPI Generator为特定Java模型配置Lombok注解
我正在用OpenAPI Generator(openapi: 3.0.3)自动生成带Lombok注解的Java模型类,以下是生成器配置片段:
{ "apiPackage": "com.francislainy.mydramalistbe.controller", "modelPackage": "com.francislainy.mydramalistbe.model", "enumPackage": "com.francislainy.mydramalistbe.model.enums", "packageName": "com.francislainy.mydramalistbe", "groupId": "com.francislainy", "artifactId": "mydramalistbe", "interfaceOnly": true, "delegatePattern": true, "useTags": true, "dateLibrary": "java8", "useSpringBoot3": true, "useJakartaEe": true, "apiNameSuffix": "Api", "useSetForUniqueItems": false, "generateBuilders": false, "additionalModelTypeAnnotations": "@lombok.Builder;@lombok.AllArgsConstructor;@lombok.NoArgsConstructor", "tagToControllers": { "content": ["ContentApi", "com.francislainy.mydramalistbe.api.content"] }, "inlineEnumMapping": false, "openApiNullable": false, "useJackson": true, "additionalProperties": { "hideGenerationTimestamp": true, "jackson": true, "jsonMappingAnnotations": true, "useBeanValidation": true } }
❗ 问题描述
通过additionalModelTypeAnnotations全局添加@AllArgsConstructor时,部分模型出现如下错误:
Constructor with '4' parameters is already defined beside @lombok.AllArgsConstructor
这是因为必填字段自动生成了签名相同的构造函数,导致与Lombok注解冲突。因此我希望只为特定模型应用Lombok注解(如@NoArgsConstructor或@Data),而非全局统一配置,解决该冲突。
✅ 已尝试方案
我在OpenAPI规范中尝试了以下几种扩展字段配置,但均未生效:
x-lombok: - "@lombok.NoArgsConstructor" - "@lombok.Data"
x-lombok: value: true data: true noArgsConstructor: true
x-extra-annotation: "@lombok.NoArgsConstructor"
x-lombok-annotations: - lombok.Data - lombok.NoArgsConstructor
示例Schema配置:
ContentListResponse: type: object x-lombok-annotations: - lombok.Data - lombok.NoArgsConstructor properties: data: type: array items: $ref: '#/components/schemas/ContentItem' page: type: integer pageSize: type: integer total: type: integer required: - data - page - pageSize - total
❓ 咨询问题
使用OpenAPI Generator时,是否有官方支持的方式只为特定模型应用Lombok注解(如@NoArgsConstructor)?或者能否按Schema覆盖全局注解?
内容的提问来源于stack exchange,提问作者Francislainy Campos
相关产品推荐
相关产品推荐

