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

如何配置插件使./mvnw package生成springdoc-openapi JSON文档?

解决方案

要让./mvnw package命令生成sentinel-openapi.json文档,需要调整两个插件的生命周期绑定阶段,同时修正配置中的语法错误,具体配置如下:

1. 调整 spring-boot-maven-plugin 配置

将应用的启停阶段从集成测试相关阶段,改为package前后的阶段:

<plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    <executions>
        <execution>
            <id>pre-package-start</id>
            <!-- 在package阶段启动应用 -->
            <phase>pre-package</phase>
            <goals>
                <goal>start</goal>
            </goals>
        </execution>
        <execution>
            <id>post-package-stop</id>
            <!-- 文档生成完成后停止应用 -->
            <phase>post-package</phase>
            <goals>
                <goal>stop</goal>
            </goals>
        </execution>
    </executions>
</plugin>

2. 调整 springdoc-openapi-maven-plugin 配置

将文档生成阶段绑定到package阶段,同时修正outputDir的语法错误(原配置中变量括号闭合位置错误):

<plugin>
    <groupId>org.springdoc</groupId>
    <artifactId>springdoc-openapi-maven-plugin</artifactId>
    <version>0.2</version>
    <executions>
        <execution>
            <!-- 在package阶段执行文档生成,此时应用已启动 -->
            <phase>package</phase>
            <goals>
                <goal>generate</goal>
            </goals>
        </execution>
    </executions>
    <configuration> 
        <outputFileName>sentinel-openapi.json</outputFileName> 
        <!-- 修正变量语法:正确的路径拼接方式 -->
        <outputDir>${project.build.directory}/../../openapi-doc/</outputDir> 
    </configuration>
</plugin>

执行逻辑说明

执行./mvnw package时,Maven会按以下顺序执行:

  1. pre-package阶段:启动Spring Boot应用
  2. package阶段:执行springdoc的文档生成逻辑,将sentinel-openapi.json输出到指定目录
  3. post-package阶段:停止Spring Boot应用
  4. 完成项目打包

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 08:24:57