如何强制springdoc-openapi-maven-plugin生成YAML文件?
解决springdoc-openapi-maven-plugin生成JSON而非YAML的问题
核心问题:重复配置覆盖了正确的API地址
你的Maven插件配置里重复定义了两次apiDocsUrl:
<apiDocsUrl>http://localhost:8080/v3/api-docs.yaml</apiDocsUrl> <!-- ... 其他配置 ... --> <apiDocsUrl>http://localhost:8080/v3/api-docs</apiDocsUrl>
Maven会采用最后一个重复的配置项,所以实际请求的是不带.yaml后缀的JSON接口,最终生成的自然是JSON文件。
修复步骤
- 删除重复的不带后缀的
apiDocsUrl配置,保留带.yaml的版本:
<plugin> <groupId>org.springdoc</groupId> <artifactId>springdoc-openapi-maven-plugin</artifactId> <version>1.4</version> <configuration> <apiDocsUrl>http://localhost:8080/v3/api-docs.yaml</apiDocsUrl> <outputFileName>openapi.yaml</outputFileName> <outputDir>${project.basedir}/api-docs</outputDir> <skip>false</skip> </configuration> <executions> <execution> <id>integration-test</id> <goals> <goal>generate</goal> </goals> </execution> </executions> </plugin>
- 执行Maven命令重新生成文档:
mvn springdoc-openapi:generate
额外验证点
- 确认Spring Boot应用处于启动状态,直接在浏览器访问
http://localhost:8080/v3/api-docs.yaml,检查是否返回YAML格式的文档 - 确保插件版本
1.4与你的Spring Boot版本兼容,版本不匹配可能导致格式解析异常
内容的提问来源于stack exchange,提问作者gtludwig
相关产品推荐
相关产品推荐

