使用openapi generator maven插件时POM的多组importMappings能否通过外部文件导入?
OpenAPI Generator Maven 插件公共 importMappings 复用方案
方案1:Maven 属性抽离复用(最易落地)
将所有公共 importMapping 统一放到 POM 的 <properties> 节点定义,所有 execution 直接引用属性即可,无需重复编写配置:
- 第一步:在 POM 全局属性中定义公共配置
<properties> <openapi.common.importMappings> <importMapping>User=cz.packages.core.UserDTO</importMapping> <importMapping>SomeObject=cz.packages.core.SomeObjectDTO</importMapping> <importMapping>SomeObject2=cz.packages.core.SomeObject2DTO</importMapping> <!-- 剩余所有公共 importMapping 统一在此处维护 --> </openapi.common.importMappings> </properties>
- 第二步:在每个 execution 的 configuration 中直接引用属性
<importMappings> ${openapi.common.importMappings} <!-- 单个 execution 有特殊映射需求可在此处追加,不会和公共配置冲突 --> </importMappings>
方案2:外部配置文件加载(配置解耦)
OpenAPI Generator 原生支持从外部文件加载配置,适合公共配置量较大、需要和 POM 分离维护的场景:
- 第一步:在项目根目录创建独立配置文件,比如命名为
openapi-common-config.yaml,内容示例:
importMappings: User: cz.packages.core.UserDTO SomeObject: cz.packages.core.SomeObjectDTO SomeObject2: cz.packages.core.SomeObject2DTO # 其余所有公共映射配置
- 第二步:在插件的 configuration 中指定配置文件路径,所有 execution 会自动读取公共配置:
<configuration> <configLocation>${project.basedir}/openapi-common-config.yaml</configLocation> <!-- 仅需配置当前 execution 特有的参数即可 --> </configuration>
方案3:父 POM 全局配置继承(多模块项目最优)
如果是多模块项目,可将所有公共 importMappings 放到父 POM 的 OpenAPI Generator 插件全局 configuration 节点下,所有子模块的 execution 会自动继承这些公共配置,子模块仅需配置自身特有的参数即可,无需重复编写公共映射。
补充说明
配置优先级为:execution 内单独配置 > 外部配置文件 > 全局/父POM配置,可按需灵活覆盖公共配置。
内容的提问来源于stack exchange,提问作者Zajonc
相关产品推荐
相关产品推荐

