Quarkus生产环境中Swagger UI缺失问题求助
Quarkus生产环境Swagger UI无法构建问题解决
问题背景
根据Quarkus官方文档,需在application.properties中配置quarkus.swagger-ui.always-include=true,才能让Swagger UI随生产环境应用一同构建(默认仅dev/test模式下可用)。但配置该属性后,生产环境仍未加载Swagger UI。
现象
- 开发环境:执行
mvn clean compile quarkus:dev启动,日志显示swagger-ui特性已安装; - 生产环境:执行
mvn clean package; java -jar target/quarkus-app/quarkus-run.jar启动,日志中无swagger-ui特性相关记录。
当前配置
application.properties内容:
# Set up for the swagger-ui (Process-defintions) quarkus.smallrye-openapi.path=/api quarkus.swagger-ui.always-include=true quarkus.swagger-ui.path=/swagger
问题原因及解决方案
查看项目pom.xml中的quarkus-swagger-ui依赖,发现其被设置为<scope>test</scope>,这会导致该依赖仅在测试环境生效,生产打包时不会被包含进构建产物,因此即便配置了always-include=true也无法生效。
修改方式:移除该依赖的test scope,让其在所有环境生效:
<dependency> <groupId>io.quarkus</groupId> <artifactId>quarkus-swagger-ui</artifactId> </dependency>
修改后重新执行mvn clean package打包,启动生产环境应用即可看到swagger-ui特性加载,访问配置的/swagger路径即可打开Swagger UI界面。
内容的提问来源于stack exchange,提问作者dko
相关产品推荐
相关产品推荐

