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

Quarkus运行@QuarkusTest测试抛出Jandex版本10不支持错误如何解决?

问题根因

该报错是因为你依赖的内置Jandex索引的模块使用了*Jandex 3.0+*版本生成索引,生成的索引版本号为10,而Quarkus 2.2.1.Final内置依赖的Jandex版本为2.x系列,最高仅支持版本号为9的索引,两者不兼容导致报错。你之前升级Jandex插件到1.2.0版本无法解决问题,是因为1.2.0版本的插件默认已经使用Jandex 3.x生成v10索引,反而不符合当前版本Quarkus的兼容要求。

解决方案
  • 方案1:降级生成索引模块的Jandex插件版本
    将生成内置Jandex索引的模块使用的Jandex插件版本降到1.1.0,同时强制指定插件使用的Jandex核心版本为2.4.2.Final,生成版本为9的兼容索引。Maven配置示例:
    <plugin>
      <groupId>org.jboss.jandex</groupId>
      <artifactId>jandex-maven-plugin</artifactId>
      <version>1.1.0</version>
      <dependencies>
        <dependency>
          <groupId>org.jboss.jandex</groupId>
          <artifactId>jandex</artifactId>
          <version>2.4.2.Final</version>
        </dependency>
      </dependencies>
      <executions>
        <execution>
          <id>make-index</id>
          <goals>
            <goal>jandex</goal>
          </goals>
        </execution>
      </executions>
    </plugin>
    
  • 方案2:强制升级Quarkus 2.2.1.Final内置的Jandex版本
    在你当前的Quarkus服务根pom的dependencyManagement配置段中,强制指定Jandex版本为3.0.5.Final,让老版本Quarkus使用高版本Jandex识别v10索引,修改完成后需要做好全链路兼容性回归测试:
    <dependency>
      <groupId>org.jboss.jandex</groupId>
      <artifactId>jandex</artifactId>
      <version>3.0.5.Final</version>
    </dependency>
    
  • 方案3:升级Quarkus版本到2.16.Final及以上
    Quarkus 2.16.Final之后的版本默认内置Jandex 3.x系列,原生支持v10版本的索引,无需额外修改Jandex相关配置。
验证方法
  • 修复配置后执行mvn clean install重新构建依赖模块和当前Quarkus服务
  • 运行带@QuarkusTest注解的测试类,确认报错消失

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 02:18:01