OpenAPI Generator:config.yaml配置import-mappings无效及忽略文件问题
配置文件中import-mappings不生效+无法忽略指定模型的解决办法
一、import-mappings配置不生效的问题
问题根源
OpenAPI Generator的Kotlin生成器不认根节点的import-mappings,这个配置必须放到additionalProperties节点下,且要改用驼峰命名的importMappings——命令行里的--import-mappings是全局参数,和配置文件中生成器专属配置的规则不一样。
修正后的kotlin-config.yaml
generatorName: kotlin additionalProperties: serializationLibrary: gson enumPropertyNaming: UPPERCASE library: jvm-volley sortParamsByRequiredFlag: false parcelizeModels: true artifactory_publish: true modelMutable: true # 关键修正:将importMappings移至additionalProperties下,使用驼峰键名 importMappings: MyObject: com.example.sdk.model.MyObject
调整后,生成器就能正确读取映射规则,将OpenAPI spec中的MyObject关联到你已有的com.example.sdk.model.MyObject类。
二、无法忽略MyObject生成文件的问题
问题根源
.openapi-generator-ignore的路径匹配错误,必须填写相对于输出目录的完整生成路径,仅写类名MyObject.kt无效;- 仅靠忽略文件无法阻止生成器尝试生成模型代码,直接让生成器跳过该模型的生成更可靠。
解决办法
方法1:用skipModels直接跳过生成(推荐)
在additionalProperties中添加skipModels参数,指定要跳过的模型名:
additionalProperties: # ... 其他原有配置 skipModels: MyObject
若需跳过多个模型,用逗号分隔即可:skipModels: MyObject,AnotherModel
方法2:修正.openapi-generator-ignore的匹配规则
假设你的modelPackage为com.example.sdk.model,生成的文件路径是src/main/kotlin/com/example/sdk/model/MyObject.kt,则在.openapi-generator-ignore中添加:
src/main/kotlin/com/example/sdk/model/MyObject.kt
必须与生成器实际输出的文件路径完全一致,才能生效。
额外提醒
- 同时使用
importMappings和skipModels时,生成器会跳过MyObject的代码生成,其他地方引用MyObject时会自动导入你指定的已有类; - 测试前建议清空输出目录,避免旧生成文件干扰验证结果。
内容的提问来源于stack exchange,提问作者Sonia Gupta
相关产品推荐
相关产品推荐

