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

如何修改Swagger Codegen生成Spring服务存根的支持文件包名?

修改Swagger Codegen生成Spring服务存根的配置包名

我之前也碰到过这个问题,默认生成的配置类都堆在io.swagger.configuration里确实不太贴合项目结构,下面几种方法可以帮你修改这个默认包名:

方法1:Maven插件配置(最常用)

如果你是通过Maven的swagger-codegen-maven-plugin生成代码,直接在插件的<configuration>节点里添加configPackage参数即可:

<plugin>
    <groupId>io.swagger.codegen.v3</groupId>
    <artifactId>swagger-codegen-maven-plugin</artifactId>
    <version>3.0.34</version> <!-- 替换成你实际使用的版本 -->
    <executions>
        <execution>
            <goals>
                <goal>generate</goal>
            </goals>
            <configuration>
                <inputSpec>${project.basedir}/src/main/resources/your-api-spec.yaml</inputSpec>
                <language>spring</language>
                <!-- 你原来指定的各类包名 -->
                <apiPackage>com.yourteam.api</apiPackage>
                <modelPackage>com.yourteam.model</modelPackage>
                <invokerPackage>com.yourteam.invoker</invokerPackage>
                <!-- 重点:修改配置类的包名 -->
                <configOptions>
                    <configPackage>com.yourteam.configuration</configPackage>
                </configOptions>
            </configuration>
        </execution>
    </executions>
</plugin>

方法2:命令行工具生成

如果用swagger-codegen-cli直接生成,有两种方式指定配置包名:

方式A:直接通过命令参数传递

swagger-codegen generate \
  -i your-api-spec.yaml \
  -l spring \
  --api-package com.yourteam.api \
  --model-package com.yourteam.model \
  --invoker-package com.yourteam.invoker \
  -DconfigPackage=com.yourteam.configuration

方式B:通过配置文件指定

先创建一个codegen-config.json文件:

{
  "apiPackage": "com.yourteam.api",
  "modelPackage": "com.yourteam.model",
  "invokerPackage": "com.yourteam.invoker",
  "configPackage": "com.yourteam.configuration"
}

再执行生成命令:

swagger-codegen generate \
  -i your-api-spec.yaml \
  -l spring \
  -c codegen-config.json

方法3:自定义模板(进阶需求)

如果还需要调整配置类的结构或内容,可以自定义Swagger模板。找到Spring模板组里的配置类模板(比如SwaggerConfiguration.mustache、ApiExceptionController.mustache),修改模板里的包名占位符,然后生成时通过--template-dir参数指向你的自定义模板目录即可。

注意:Swagger Codegen v2和v3的插件groupId略有不同,v2的groupId是io.swagger,如果用的是旧版本记得对应调整参数位置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 10:39:59