You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在OpenAPI Generator输入YML中修改Spring代码包结构?需改哪个Mustache文件?

关于OpenAPI Generator修改Spring代码包结构的问题

能否修改默认包结构?

完全可以修改。OpenAPI Generator提供两种实现方式:通过命令行参数快速配置基础结构,或通过自定义Mustache模板实现更灵活的定制化结构。

方式一:命令行参数快速调整(无需修改模板)

如果只是调整基础包路径和核心组件的包位置,直接在生成命令中指定以下参数即可:

  • --api-package:指定API控制器(Controller)的包路径,例如com.example.api.controller
  • --model-package:指定数据模型(Model)的包路径,例如com.example.api.model
  • --invoker-package:指定配置类、调用器的包路径,例如com.example.config
  • --package-name:设置根包名,作为所有包的统一前缀

示例生成命令:

openapi-generator generate -i petstore.yaml -g spring \
  --api-package com.example.api.controller \
  --model-package com.example.api.model \
  --invoker-package com.example.config \
  --package-name com.example

方式二:自定义Mustache模板实现复杂结构

如果需要新增service、exception、util这类细分包结构,就需要修改对应的Mustache模板:

  1. 先导出Spring生成器的默认模板到本地:
openapi-generator generate -g spring -o /tmp/spring-default-templates --skip-validate-spec
  1. 修改核心模板文件:
    • api.mustache:控制Controller类生成,修改文件顶部的package声明,对应到你期望的Controller包路径(比如package {{apiPackage}};,确保apiPackage参数指向com.example.api.controller)
    • model.mustache:控制Model类生成,同理修改package声明到目标Model包路径
    • 若需要生成Service层代码,需自定义service.mustache模板,设置包路径为com.example.api.service,并在生成配置中开启Service生成逻辑
  2. 生成代码时指定自定义模板目录:
openapi-generator generate -i petstore.yaml -g spring -t /path/to/your/custom-templates

匹配你期望的包结构(参考示意图)

假设你期望的结构是:

com.example
├─ api
│  ├─ controller
│  ├─ model
│  └─ service
├─ config
├─ exception
└─ util

可按以下步骤配置:

  • 用--api-package com.example.api.controller指定Controller包
  • 用--model-package com.example.api.model指定Model包
  • 自定义service.mustache模板并配置包路径为com.example.api.service
  • 用--invoker-package com.example.config指定配置类包
  • exception、util这类自定义包可手动补充,或通过扩展模板实现自动生成

内容的提问来源于stack exchange,提问作者Aniket Thorat

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 02:30:43