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

SpringBoot 3.x构建时无启动生成OpenAPI文档方案咨询

解决方案

要实现构建阶段不启动Spring Boot应用即可生成OpenAPI文档,你需要调整Maven插件配置,让Springdoc直接从代码注解扫描生成文档,而非通过访问运行中的应用接口。具体修改如下:

1. 调整插件配置

修改generate-swagger-client Profile中的插件配置,移除不必要的应用启停逻辑,并配置Springdoc直接扫描代码:

<profile>
    <id>generate-swagger-client</id>
    <build>
        <plugins>
            <!-- 移除原spring-boot-maven-plugin的start/stop执行(无需再启停应用) -->
            <plugin>
                <groupId>org.springdoc</groupId>
                <artifactId>springdoc-openapi-maven-plugin</artifactId>
                <version>1.4</version>
                <executions>
                    <execution>
                        <id>generate-openapi</id>
                        <goals>
                            <goal>generate</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <!-- 替换为你的Spring Boot主类全限定名(带@SpringBootApplication的类) -->
                    <springBootConfiguration>com.yourpackage.YourApplication</springBootConfiguration>
                    <!-- 替换为你的Controller、DTO等带OpenAPI注解的类所在包(多包用逗号分隔) -->
                    <packagesToScan>com.yourpackage.controller,com.yourpackage.dto</packagesToScan>
                    <outputFileName>openapi.json</outputFileName>
                    <outputDir>${basedir}/generated/swagger-specs</outputDir>
                    <skip>false</skip>
                    <!-- 禁用Web服务器启动,避免应用完整初始化 -->
                    <properties>
                        <spring.main.web-application-type>NONE</spring.main.web-application-type>
                    </properties>
                </configuration>
            </plugin>
        </plugins>
    </build>
</profile>

2. 关键配置说明

  • springBootConfiguration:指定Spring Boot主类,插件通过该类加载Spring上下文但不启动Web服务。
  • packagesToScan:指定包含OpenAPI注解(如@Operation、@Parameter)的类所在包,确保插件能扫描到所有需要生成文档的代码。
  • spring.main.web-application-type=NONE:强制Spring以非Web模式启动,彻底避免Web服务器初始化,减少构建开销。

3. 执行命令

保持原命令不变,执行后插件会直接扫描代码生成文档,无需启停应用:

mvn clean install -P generate-swagger-client

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 15:43:35