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

Quarkus原生编译Flyway报错:Scanner从未使用,求解决方案

解决Quarkus原生编译启动Flyway Scanner报错问题

针对你遇到的org.flywaydb.core.internal.scanner.Scanner未被Quarkus使用的启动错误,可尝试以下解决方案:

  • 确保引入Quarkus Flyway原生扩展
    检查项目pom.xml中是否包含quarkus-flyway依赖,该扩展会自动处理Flyway在GraalVM原生编译中的反射和资源扫描需求:

    <dependency>
        <groupId>io.quarkus</groupId>
        <artifactId>quarkus-flyway</artifactId>
    </dependency>
    
  • 添加反射元数据配置
    在src/main/resources/META-INF/native-image/reflect-config.json中添加Scanner类的反射配置,让GraalVM保留该类的构造方法和方法:

    [
        {
            "name": "org.flywaydb.core.internal.scanner.Scanner",
            "allDeclaredConstructors": true,
            "allPublicConstructors": true,
            "allDeclaredMethods": true,
            "allPublicMethods": true
        }
    ]
    
  • 验证资源包含配置
    确认application.properties(或对应prod环境配置文件)中的quarkus.native.resources.includes=db/migration/**配置生效,同时检查迁移文件是否放在src/main/resources/db/migration目录下,路径和命名符合Flyway规范(如V1__Initial_Setup.sql)。

  • 强制构建时初始化Scanner类
    修改原生编译命令,添加参数强制在构建阶段初始化Scanner类:

    mvn clean package -Dnative -Dquarkus.native.additional-build-args=--initialize-at-build-time=org.flywaydb.core.internal.scanner.Scanner
    
  • 核对Flyway与Quarkus版本兼容性
    检查使用的Flyway版本是否与Quarkus版本兼容,调整Flyway依赖版本以匹配Quarkus集成要求,避免版本冲突导致的扫描异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 23:25:22