如何解决OpenAPI 生成器从命令行运行,但不能从 Gradle 插件运行
我想为使用 OpenAPI 3 编写的内部 API 生成 Flutter/Dart 应用程序的客户端存根。服务器本身是使用相同的 API 规范和 Maven 插件 org.openapitools.openapi-generator-maven-plugin
生成的。
当我尝试通过命令行以这种方式生成 Dart 客户端存根时,它工作正常:
java -cp openapi-generator-cli-5.1.1.jar org.openapitools.codegen.OpenAPIGenerator generate -i ./api_spec/api.json -g dart --enable-post-process-file
但我想把它作为 Flutter 应用程序的一部分放在 gradle 构建中,所以我按照说明创建了这个 build.gradle
文件:
buildscript {
repositories {
mavenLocal()
mavenCentral()
}
}
plugins {
id "org.openapi.generator" version "5.1.1"
}
openApiGenerate {
generatorName = "dart"
inputSpec = "$rootDir/api_spec/api.json"
outputDir = "$rootDir/../api"
apiPackage = "mypackage.api"
modelPackage = "mypackage.api"
}
但是,这不会生成客户端存根。 (我什至尝试过改变语言,看看问题出在哪里,效果是一样的)。我收到一堆如下所示的错误,这似乎表明出于某种原因,它需要的是 Swagger 2.0 文件而不是 OpenAPI 3.x 文件。
> Task :openApiGenerate FAILED
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':openApiGenerate'.
> There were issues with the specification. The option can be disabled via validateSpec (Maven/Gradle) or --skip-validate-spec (CLI).
| Error count: 72,Warning count: 0
Errors:
-attribute paths.'/subscriber/{id}/device'(post).[id].type is missing
-attribute openapi is unexpected
-attribute servers is unexpected
-attribute swagger is missing
-attribute components is unexpected
有没有办法解决这个问题,或者明确指定 OpenAPI 版本?
我什至尝试设置 validateSpec = false
但它没有任何区别,标志被忽略,我仍然得到相同的输出。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。