Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用带有Lombok注释的OpenAPI生成器生成POJO_Java_Spring Boot_Swagger_Openapi_Openapi Generator - Fatal编程技术网

Java 使用带有Lombok注释的OpenAPI生成器生成POJO

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生成器的旧版本

我正在使用OpenAPI生成器maven插件(如下面的插件)为模型生成Java客户机代码


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>