如何配置插件使./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会按以下顺序执行:
pre-package阶段:启动Spring Boot应用package阶段:执行springdoc的文档生成逻辑,将sentinel-openapi.json输出到指定目录post-package阶段:停止Spring Boot应用- 完成项目打包
内容的提问来源于stack exchange,提问作者Zahir Basha
相关产品推荐
相关产品推荐

