OpenAPI Generator Gradle插件不生成Models及校验报错问题咨询
报错原因
- 你当前使用的
org.openapi.generatorGradle插件5.1.1版本,内置的OpenAPI规范校验逻辑严格遵循对应版本的OAS规则,你提供的YAML文件中400、406等响应码下的content字段定义不符合该版本的校验要求,所以触发校验失败中断任务执行。 - 本地CLI工具可以正常生成,是因为你使用的CLI版本和Gradle插件5.1.1版本不一致:要么CLI版本的校验规则更宽松,要么你执行CLI命令时默认开启了跳过校验的参数,所以没有触发报错。
跳过校验后仅生成API无Model类的原因
skipValidateSpec = true仅能绕过「校验失败就中断任务」的逻辑,不会修改生成器的内部过滤规则:5.1.1版本的生成器会在校验阶段把不符合规范的Schema定义标记为非法,生成阶段会直接跳过这些非法Schema的处理,所以关联的Model类不会被生成;而API路径定义没有被标记为完全非法,所以可以正常生成API代码。
可行解决方法
- 优先将Gradle插件版本替换为你本地正常可用的CLI版本,保证校验和生成逻辑完全对齐,即可正常生成全部代码。
- 如果必须使用5.1.1版本插件,可以在
openApiGenerate配置中追加以下参数,强制生成Model:
openApiGenerate { // 原有配置保持不变 skipValidateSpec = true configOptions = [ dateLibrary: "java8", ignoreInvalidSchema: "true" ] generateModels = true }
内容的提问来源于stack exchange,提问作者Dred
相关产品推荐
相关产品推荐

