Java 使用带有Lombok注释的OpenAPI生成器生成POJO
我正在使用OpenAPI生成器maven插件(如下面的插件)为模型生成Java客户机代码Java 使用带有Lombok注释的OpenAPI生成器生成POJO,java,spring-boot,swagger,openapi,openapi-generator,Java,Spring Boot,Swagger,Openapi,Openapi Generator,我正在使用OpenAPI生成器maven插件(如下面的插件)为模型生成Java客户机代码 org.openapitools ,其中最后一条评论谈到了,使用Lombok注释生成模型的问题已经得到了解决。但是,在OpenAPI generator开源项目中,我还没有看到任何关于该特性的使用或文档的明确指示。那么,现在有没有办法用Lombok注释而不是常规的getter和setter来生成模型呢?编辑:这个答案不推荐使用。见@Laess3r的帖子。我将留下这个,因为它适用于opnapi生成器的旧版本
org.openapitools
,其中最后一条评论谈到了,使用Lombok注释生成模型的问题已经得到了解决。但是,在OpenAPI generator开源项目中,我还没有看到任何关于该特性的使用或文档的明确指示。那么,现在有没有办法用Lombok注释而不是常规的getter和setter来生成模型呢?编辑:这个答案不推荐使用。见@Laess3r的帖子。我将留下这个,因为它适用于opnapi生成器的旧版本
openapi生成器
尚不支持Lombok注释。如果要生成带有Lombok注释的代码,需要在mustache
中创建自定义模板,如中所述
如果您从未使用过mustache
,请注意它有点难以阅读,因此请尽量保持模板的简单性,并确保添加单元测试以验证生成的输出。该模板将如下所示:
/**
* {{#description}}{{description}}{{/description}}
*/
@Data
public class {{classname}} {{#parent}}extends {{{parent}}} {{/parent}} {
{{#vars}}
/**
* {{#description}}{{description}}{{/description}}
*/
@JsonProperty("{{#lambda.lowercase}}{{nameInSnakeCase}}{{/lambda.lowercase}}")
private {{{datatypeWithEnum}}} {{name}};
{{/vars}}
要完成这个非常古老的线程:现在它确实支持Lombok注释
从
@lombok.Builder@lombok.noargsconstuctor@lombok.allargsconstuctor
也许使用Java 16中的新功能编写代码比使用Lombok更容易。太好了@Laess3r,谢谢您的评论。它也会帮助别人。太好了!他们在哪个版本的openapi generator中添加了Lombok支持?@DV82XL似乎在2020年3月的openapi generator 4.2.3中引入了额外的注释支持。
<configOptions>
<additionalModelTypeAnnotations>@lombok.Builder @lombok.NoArgsConstructor @lombok.AllArgsConstructor</additionalModelTypeAnnotations>
</configOptions>