如何配置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
相关产品推荐
相关产品推荐

