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

Spring Boot OpenAPI Generator Maven插件:多Spec下禁用Application类生成?

解决openapi-generator-maven-plugin多execution生成重复主类的问题

你可以通过以下两种方式实现不生成自动生成的主类,同时保留API、Controller、Delegate等业务类的生成,无需定制OpenAPI Code Generator:

方法一:使用generateApplication参数(推荐,适用于较新版本插件)

在每个execution的configuration中添加<generateApplication>false</generateApplication>,这个参数会单独禁用自动生成主类的逻辑,不会影响其他业务相关类的生成。

示例pom.xml配置片段:

<plugin>
    <groupId>org.openapitools</groupId>
    <artifactId>openapi-generator-maven-plugin</artifactId>
    <version>你的插件版本</version>
    <executions>
        <!-- 第一个业务模块的execution -->
        <execution>
            <id>generate-api-module1</id>
            <goals>
                <goal>generate</goal>
            </goals>
            <configuration>
                <inputSpec>${project.basedir}/src/main/resources/api/module1-api.yaml</inputSpec>
                <generatorName>spring</generatorName>
                <!-- 禁用自动生成主类 -->
                <generateApplication>false</generateApplication>
                <!-- 其他业务类生成配置 -->
                <packageName>com.yourcompany.module1</packageName>
                <generateApis>true</generateApis>
                <generateControllers>true</generateControllers>
                <generateDelegates>true</generateDelegates>
                <!-- 其余必要配置 -->
            </configuration>
        </execution>
        <!-- 第二个业务模块的execution -->
        <execution>
            <id>generate-api-module2</id>
            <goals>
                <goal>generate</goal>
            </goals>
            <configuration>
                <inputSpec>${project.basedir}/src/main/resources/api/module2-api.yaml</inputSpec>
                <generatorName>spring</generatorName>
                <!-- 同样禁用自动生成主类 -->
                <generateApplication>false</generateApplication>
                <packageName>com.yourcompany.module2</packageName>
                <generateApis>true</generateApis>
                <generateControllers>true</generateControllers>
                <generateDelegates>true</generateDelegates>
                <!-- 其余必要配置 -->
            </configuration>
        </execution>
    </executions>
</plugin>

方法二:通过supportingFilesToGenerate控制辅助文件生成(适用于旧版本插件)

如果你的插件版本不支持generateApplication参数,可以通过指定需要生成的辅助文件列表,排除主类对应的文件。主类对应的模板文件名为OpenApiGeneratorApplication.java.mustache,不将其加入列表即可避免生成。

示例配置片段:

<configuration>
    <!-- 仅指定需要生成的辅助文件,排除主类 -->
    <supportingFilesToGenerate>README.md,pom.xml</supportingFilesToGenerate>
    <!-- 其他业务类生成配置 -->
</configuration>

两种方式都能让你按业务拆分YAML文件生成对应业务类,同时保留自己编写的主类作为项目唯一入口,解决repackage阶段的主类冲突问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 22:48:07