You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置OpenAPI Generator生成代码时使用Jakarta包?

Spring Boot 3.0.0 下调整 OpenAPI Generator 注解配置

Spring Boot 3.0 全面切换为 Jakarta EE 规范,不再包含 javax.* 相关模块,而旧版 OpenAPI Generator 默认生成 javax.annotation.Generated 注解会导致编译报错,可通过以下几种方式配置解决:

Maven 插件配置

在 openapi-generator-maven-plugin 的配置里,通过 configOptions 指定生成 Jakarta 版本的注解,或者直接禁用注解生成:

<plugin>
    <groupId>org.openapitools</groupId>
    <artifactId>openapi-generator-maven-plugin</artifactId>
    <!-- 建议使用6.0.0+版本,确保支持Jakarta参数 -->
    <version>6.6.0</version>
    <executions>
        <execution>
            <goals>
                <goal>generate</goal>
            </goals>
            <configuration>
                <inputSpec>${project.basedir}/src/main/resources/api.yaml</inputSpec>
                <generatorName>spring</generatorName>
                <configOptions>
                    <!-- 替换为Jakarta规范的Generated注解 -->
                    <generatedAnnotation>jakarta.annotation.Generated</generatedAnnotation>
                    <!-- 可选:直接禁用@Generated注解生成 -->
                    <!-- <hideGenerationTimestamp>true</hideGenerationTimestamp> -->
                </configOptions>
            </configuration>
        </execution>
    </executions>
</plugin>

Gradle 插件配置

针对 Gradle 项目,在插件配置中添加对应参数:

plugins {
    id "org.openapi.generator" version "6.6.0"
}

openapiGenerate {
    inputSpec = file("src/main/resources/api.yaml").absolutePath
    generatorName = "spring"
    configOptions = [
        // 指定Jakarta版本注解
        generatedAnnotation: "jakarta.annotation.Generated",
        // 可选:禁用注解生成
        // hideGenerationTimestamp: "true"
    ]
}

额外说明

  • 确保使用 6.0.0 及以上版本 的 OpenAPI Generator,旧版本不支持 Jakarta 相关配置参数。
  • 如果不想引入 jakarta.annotation-api 依赖,可选择设置 hideGenerationTimestamp: true 完全跳过@Generated注解的生成,或者指定自定义注解的全类名(比如你项目内部定义的注解)。

内容的提问来源于stack exchange,提问作者meldevep

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 01:35:28