【发布时间】:2019-08-12 16:07:01
【问题描述】:
我正在使用带有 Maven 的 openapi-yaml 生成器将一个 swagger 文件转换为一个开放的 API v3 文件。
我想做的是将新文件直接放入某个目录。
但是会生成一些我不需要的附加文件,例如README.md、.openapi-generator/VERSION、.openapi-generator-ignore
是否可以禁用此行为并仅生成 .yaml 文件?
【问题讨论】:
我正在使用带有 Maven 的 openapi-yaml 生成器将一个 swagger 文件转换为一个开放的 API v3 文件。
我想做的是将新文件直接放入某个目录。
但是会生成一些我不需要的附加文件,例如README.md、.openapi-generator/VERSION、.openapi-generator-ignore
是否可以禁用此行为并仅生成 .yaml 文件?
【问题讨论】:
直接通过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"
)
}
}
【讨论】:
是的,这可以使用 .openapi-generator-ignore 文件,如下所述:
例如,要跳过 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
【讨论】:
我建议您保留这些文件。 README.md 帮助他人理解代码。 VERSION 显示您正在使用的 openapi-generator 版本。 .openapi-generator-ignore 的作用类似于 .gitignore 以跳过某些文件的生成
将README.md 和.openapi-generator/VERSION 放入.openapi-generator-ignore 将跳过这些文件的生成。
要“忽略” .openapi-generator 文件夹,您可以使用脚本对输出进行后处理并删除不需要的文件/文件夹。
【讨论】:
.openapi-generator 文件夹。我的用例非常简单 - 我只是生成 OAS 3 文档(基于代码始终是最新的),而所有其他文件没有多大意义。
.openapi-generator/** 放在忽略文件中,它仍然会生成 .openapi-generator/ 中的每个文件
.openapi-generator 文件夹,您可以使用脚本对输出进行后处理并删除您不想要的文件/文件夹。