有没有办法配置 openapi-generator 在生成过程中使用 jakarta 包

mel*_*vep 52 java openapi-generator openapi-generator-maven-plugin

我最近升级了我的项目以使用 spring-boot 3.0.0。所以我的javax.*项目中不再有模块了。但开放 API 生成器不断尝试导入javax模块。特别是,它用于项目中不再存在的注释javax.annotation.Generated@Generated有没有办法以某种方式重新配置它?

小智 40

是的,您可以在生成器的配置选项中使用 useSpringBoot3: "true" 。gradle 中的示例:

        configOptions = [
            useSpringBoot3: "true"
        ]
Run Code Online (Sandbox Code Playgroud)

  • 从 openapi-generator 6.3.0 开始,设置 `useJakartaEe: 'true'` 应该可以在 `java` 生成器中工作,但显然某些配置不能正常工作,因此问题仍然存在。使用“native”库对我来说效果很好! (8认同)
  • 顶部选项仅适用于“Spring”生成器。如果您正在为客户端生成代码(例如“Java”生成器),则此选项不可用。目前我没有看到任何允许雅加达迁移的选项。 (3认同)

sas*_*_bg 34

您应该尽可能遵循文档。

您需要的属性是“useSpringBoot3”或“useJakartaEe”

  1. 转到https://github.com/OpenAPITools/openapi-generator/tree/master/modules/openapi-generator-maven-plugin

  2. 在表格的末尾,您会看到“configHelp”属性,在我的例子中,它将为您提供当前生成器“spring”的配置

  3. 重新运行“mvn clean install” - 这将为您提供可用“configOptions”的列表。

  4. 阅读清单并找到房产

    useJakartaEe: 是否使用 Jakarta EE 命名空间而不是 javax (默认: false)

我的最终 pom:

<plugin>
    <groupId>org.openapitools</groupId>
    <artifactId>openapi-generator-maven-plugin</artifactId>
    <version>6.4.0</version>
    <executions>
        <execution>
            <goals>
                <goal>generate</goal>
            </goals>
            <configuration>
                <configHelp>false</configHelp>
                <configOptions>
                    <useJakartaEe>true</useJakartaEe>
                </configOptions>
                <inputSpec>
                    ${project.basedir}/src/main/resources/api.openapi.yaml
                </inputSpec>
                <generatorName>spring</generatorName>
                <apiPackage>some.package</apiPackage>
                <modelPackage>some.package.model</modelPackage>
            </configuration>
        </execution>
    </executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)

干杯