【问题标题】:How to skip generation of support and metadata files with openAPI Generator and Maven?如何使用 openAPI Generator 和 Maven 跳过支持和元数据文件的生成?
【发布时间】:2019-08-12 16:07:01
【问题描述】:

我正在使用带有 Maven 的 openapi-yaml 生成器将一个 swagger 文件转换为一个开放的 API v3 文件。

我想做的是将新文件直接放入某个目录。

但是会生成一些我不需要的附加文件,例如README.md.openapi-generator/VERSION.openapi-generator-ignore

是否可以禁用此行为并仅生成 .yaml 文件?

【问题讨论】:

    标签: openapi-generator


    【解决方案1】:

    直接通过openApiGenerate 配置看起来仍然不可能。正如其他人建议的那样,它可以通过脚本来完成。由于没有示例,这里是我通过扩展 gradle 任务整理出来的

    openApiGenerate {
        generatorName = "java"
        inputSpec = (String) "$buildDir/openapi.json"
        outputDir =  (String) "$rootDir/generated-client"
        apiPackage = "com.example.client.api"
        modelPackage = "com.example.client.model"
        invokerPackage = "com.example.client.invoker"
    }
    
    tasks.openApiGenerate {
        doLast {
            delete (
                    "$rootDir/generated-client/.openapi-generator",
                    "$rootDir/generated-client/api",
                    "$rootDir/generated-client/gradle",
                    "$rootDir/generated-client/docs"
            )
        }
    }
    

    【讨论】:

      【解决方案2】:

      是的,这可以使用 .openapi-generator-ignore 文件,如下所述:

      https://github.com/OpenAPITools/openapi-generator/blob/master/docs/customization.md#ignore-file-format

      例如,要跳过 git_push.sh,可以在输出目录的根目录中创建一个名为 .openapi-generator-ignore 的文件,其内容如下:

      # Prevent generator from creating these files:
      git_push.sh
      

      也可以在以下位置找到一些好的文档:

      https://openapi-generator.tech/docs/faq-extending/#how-do-i-skip-files-during-code-generation

      【讨论】:

      • 这只会阻止生成器覆盖这些文件,但是如果它们不存在,它们仍然会生成。
      【解决方案3】:

      我建议您保留这些文件。 README.md 帮助他人理解代码。 VERSION 显示您正在使用的 openapi-generator 版本。 .openapi-generator-ignore 的作用类似于 .gitignore 以跳过某些文件的生成

      README.md.openapi-generator/VERSION 放入.openapi-generator-ignore 将跳过这些文件的生成。

      要“忽略” .openapi-generator 文件夹,您可以使用脚本对输出进行后处理并删除不需要的文件/文件夹。

      【讨论】:

      • 您好威廉,感谢您的建议。遗憾的是它没有按我想要的方式工作。我无法忽略 .openapi-generator 文件夹。我的用例非常简单 - 我只是生成 OAS 3 文档(基于代码始终是最新的),而所有其他文件没有多大意义。
      • Op 没有征求您对他想做什么的意见,他问是否有可能。 -1
      • 这不起作用。我正在使用 5.0.0 版的生成器,即使我将 .openapi-generator/** 放在忽略文件中,它仍然会生成 .openapi-generator/ 中的每个文件
      • 要“忽略”.openapi-generator 文件夹,您可以使用脚本对输出进行后处理并删除您不想要的文件/文件夹。
      • 您能否更新您的答案,唯一的解决方案是后处理?
      猜你喜欢
      • 2021-08-08
      • 2022-07-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-26
      • 2021-11-15
      相关资源
      最近更新 更多