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

使用OpenAPI Generator时如何跳过Factory与Impl类的生成?

OpenAPI Generator 6.6.0 保留API类同时关闭Factory/Impl类生成

我正在使用版本6.6.0的OpenApi Generator,搭配Gradle生成插件开发。采用jaxrs-jersey服务端生成器,查阅文档后未找到关闭Factory类(*Factory.java)和实现类(*Impl.java)生成的方法。我发现若不生成API类可部分实现该需求,但我希望保留API类的生成。请问是否有可行方案?

以下是我的openApiGenerate任务配置:

openApiGenerate{
    generatorName = "jaxrs-jersey"
    cleanupOutput = true
    inputSpec = "$project.swaggerFile"
    outputDir = "$project.buildSrcRoot"
    apiPackage = "$project.apiPackage"
    invokerPackage = "$project.rootPackage"
    modelPackage = "$project.modelPackage"
    generateModelTests = false
    globalProperties = [
            apis: "false",
            models: "",
            modelDocs: "false",
    ]
    configOptions = [
        dateLibrary: "java8",
        developerOrganizationUrl: "https://my-org.com",
        hideGenerationTimestamp: "true",
        useJakartaEe: "true"
    ]
}

可行方案

你可以通过调整openApiGenerate任务的配置,实现保留API接口类、关闭Factory和Impl类生成的需求,具体修改点如下:

  1. 修正globalProperties中的apis参数:
    当前设置apis: "false"会关闭所有API相关类的生成,与你保留API类的需求冲突,需要改为apis: "true"。

  2. 在configOptions中添加控制生成的参数:
    jaxrs-jersey生成器支持两个专属配置项,用于精准控制Impl和Factory类的生成:

    • generateApiImplementation: 设为"false"关闭*Impl.java实现类的生成
    • generateApiFactory: 设为"false"关闭*Factory.java工厂类的生成

修改后的完整配置如下:

openApiGenerate{
    generatorName = "jaxrs-jersey"
    cleanupOutput = true
    inputSpec = "$project.swaggerFile"
    outputDir = "$project.buildSrcRoot"
    apiPackage = "$project.apiPackage"
    invokerPackage = "$project.rootPackage"
    modelPackage = "$project.modelPackage"
    generateModelTests = false
    globalProperties = [
            apis: "true", // 改为true以保留API接口类
            models: "",
            modelDocs: "false",
    ]
    configOptions = [
        dateLibrary: "java8",
        developerOrganizationUrl: "https://my-org.com",
        hideGenerationTimestamp: "true",
        useJakartaEe: "true",
        generateApiImplementation: "false", // 关闭Impl类生成
        generateApiFactory: "false" // 关闭Factory类生成
    ]
}

说明:这两个配置项在OpenAPI Generator 6.6.0版本的jaxrs-jersey生成器中是原生支持的,无需额外自定义模板即可生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 01:55:16