在openapi生成器中使用Lombok

问题描述 投票:0回答:1

描述:

无法生成具有 lombok 扩展的模型类。支持 lombok 注释的 pom.xml 配置不起作用。

openapi-generator-maven-plugin: 7.2.0
springdoc-openapi-starter-webmvc-ui: 2.1.0

OpenAPI声明文件内容或url

openapi: 3.0.3
info:
  title: Example apis
  description: |-
    A simple collection of example APIs
  version: 1.0-SNAPSHOT
servers:
  - url: http://127.0.1:8091/api/v1
    description: Local server (uses test data)
  - url: https://example-dev.com/api/v1
    description: UAT server (uses test data)
  - url: https://example.com/api/v1
    description: Production server (uses live data)
tags:
  - name: example
    description: example apis
paths:
  /examples:
    get:
      summary: Get examples
      description: Get examples
      operationId: getExample
      responses:
        200:
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Example'
        404:
          description: Leaderboard not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExampleNotFoundError'
  
components:
  schemas:
    Example:
      type: object
      properties:
        creatorId:
          type: string
        hipiCoins:
          type: number
    ExampleNotFoundError:
      type: object
      properties:
        creatorId:
          type: string
        hipiCoins:
          type: number

世代详情

Language: Java
Libraries:
springdoc-openapi-starter-webmvc-ui: 2.1.0

我已将我的 pom.xml 粘贴在底部,其中包含所有详细信息。

重现步骤:

在 pom.xml

@lombok.Builder @lombok.NoArgsConstructor @lombok.AllArgsConstructor
没有被识别,没有这一行一切都工作正常。

相关问题:https://github.com/OpenAPITools/openapi-generator/issues/324#issuecomment-785438335

我的pom.xml是

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>3.2.1</version>
    <relativePath/> <!-- lookup parent from repository -->
  </parent>
  <groupId>com.zee5.shorts</groupId>
  <artifactId>hipi-be-leaderboard</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <name>example</name>
  <description>Example Service</description>
  <properties>
    <java.version>21</java.version>
  </properties>
  <dependencies>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-data-redis</artifactId>
    </dependency>
    <dependency>
      <groupId>org.springframework.data</groupId>
      <artifactId>spring-data-jpa</artifactId>
      <version>3.2.2</version>
    </dependency>

    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-devtools</artifactId>
      <scope>runtime</scope>
      <optional>true</optional>
    </dependency>
    <dependency>
      <groupId>org.projectlombok</groupId>
      <artifactId>lombok</artifactId>
      <optional>true</optional>
    </dependency>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-validation</artifactId>
    </dependency>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-test</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.openapitools</groupId>
      <artifactId>jackson-databind-nullable</artifactId>
      <version>0.2.6</version>
    </dependency>
    <dependency>
      <groupId>org.springdoc</groupId>
      <artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
      <version>2.1.0</version>
    </dependency>
    <dependency>
      <groupId>net.sourceforge.plantuml</groupId>
      <artifactId>plantuml-mit</artifactId>
      <version>1.2023.13</version>
    </dependency>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>
    <dependency>
      <groupId>com.diffplug.spotless</groupId>
      <artifactId>spotless-maven-plugin</artifactId>
      <version>2.41.1</version>
    </dependency>
    <dependency>
      <groupId>com.google.code.gson</groupId>
      <artifactId>gson</artifactId>
      <version>2.10.1</version>
    </dependency>
  </dependencies>

  <build>
    <plugins>
      <plugin>
        <groupId>com.diffplug.spotless</groupId>
        <artifactId>spotless-maven-plugin</artifactId>
        <version>2.41.0</version>
        <configuration>
          <java>
            <includes>
              <include>src/main/java/**/*.java</include> <!-- Check application code -->
              <include>src/test/java/**/*.java</include> <!-- Check application tests code -->
            </includes>
            <googleJavaFormat>
              <version>1.17.0</version>
              <style>GOOGLE</style>
            </googleJavaFormat>
          </java>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
        <configuration>
          <excludes>
            <exclude>
              <groupId>org.projectlombok</groupId>
              <artifactId>lombok</artifactId>
            </exclude>
          </excludes>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.openapitools</groupId>
        <artifactId>openapi-generator-maven-plugin</artifactId>
        <version>7.2.0</version>
        <executions>
          <execution>
            <goals>
              <goal>generate</goal>
            </goals>
            <configuration>
              <skipValidateSpec>true</skipValidateSpec>
              <inputSpec>./src/main/resources/swagger-doc.yaml</inputSpec>
              <generatorName>spring</generatorName>
              <apiPackage>com.example.openapi.api</apiPackage>
              <modelPackage>com.example.openapi.model</modelPackage>
              <supportingFilesToGenerate>
                ApiUtil.java
              </supportingFilesToGenerate>
              <configOptions>
<additionalModelTypeAnnotations>@lombok.Builder @lombok.NoArgsConstructor @lombok.AllArgsConstructor</additionalModelTypeAnnotations>
                <delegatePattern>true</delegatePattern>
                <useSpringBoot3>true</useSpringBoot3>
              </configOptions>
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>

</project>

lombok.config

config.stopBubbling = true
lombok.experimental.flagUsage = warning

有几个与此类似的博客和 stackoverflow 帖子,但没有一个解决方案有效,可能与其他依赖项存在冲突,但没有收到任何错误或异常。

java spring-boot openapi openapi-generator openapi-generator-maven-plugin
1个回答
0
投票

也许您需要在 lombok.config 文件中定义一些内容?我注意到你没有提到尝试这个。

© www.soinside.com 2019 - 2024. All rights reserved.