使用Quarkus 3.1.0.Final与openapi-generator 2.2.5报NoSuchFileException
解决Quarkus OpenAPI Generator Gradle下的NoSuchFileException错误
当使用io.quarkiverse.openapi.generator:quarkus-openapi-generator:2.2.5搭配Quarkus 3.1.0.Final时,应用虽能正常启动,但日志中会抛出java.nio.file.NoSuchFileException(目标路径为PROJECT_LOCATION\build\classes\java\openapi),这是因为Quarkus的文件监听工具尝试检查一个不存在的openapi编译目录。
对应Maven的<extensions>true</extensions>配置,Gradle的解决方案如下:
Gradle Groovy DSL配置
在build.gradle中添加:
quarkus { openApiGenerator { extensions = true } }
Gradle Kotlin DSL配置
在build.gradle.kts中添加:
quarkus { openApiGenerator { extensions.set(true) } }
原理说明
开启extensions配置后,OpenAPI Generator会将生成的代码目录自动注册为Gradle的源码集目录,Quarkus部署流程会正确识别该目录,避免尝试访问未生成的编译目录。
备选方案(若上述配置不生效)
手动将生成的openapi代码目录添加到源码集:
- Groovy DSL:
sourceSets { main { java { srcDirs += "${buildDir}/generated/openapi" } } }
- Kotlin DSL:
sourceSets { main { java { srcDirs("${buildDir}/generated/openapi") } } }
内容的提问来源于stack exchange,提问作者Altafhusen Makandar
相关产品推荐
相关产品推荐

