首页 > 解决方案 > Quarkus 在测试期间抛出 org.jboss.jandex.UnsupportedVersion: Version: 10

问题描述

我们有一些 Quarkus 服务,它依赖于一个包含 Jandex 索引的模块。

现在,当我们运行一个包含 @QuarkusTest 注释的测试时,我们会收到错误:

org.jboss.jandex.UnsupportedVersion: Version: 10

我们正在使用 Quarkus 2.2.1.Final 和 Jandex 插件 1.1.0(我也尝试了 1.2.0 的插件)

标签: javaquarkusjandex

解决方案


这是因为 Jandex 索引是由 Jandex 2.4.0.Final 生成的,它使用更新版本的索引格式(10特别是 version )。Quarkus 2.2使用Jandex 2.3.1.Final,它不理解新的索引格式(它只理解版本小于或等于9)。

Jandex Maven 插件如何使用 Jandex 2.4.0.Final 有 2 种常见方式:

  1. 如果您没有为 Jandex Maven 插件指定 Jandex 依赖项,Jandex Maven 插件将使用它构建的任何内容。也就是说,Jandex Maven 插件 1.2.0 将使用 Jandex 2.4.0.Final。Jandex Maven 插件的早期版本使用早期的 Jandex 版本。
  2. 如果您为 Jandex Maven 插件指定了 Jandex 依赖项,Jandex Maven 插件将很乐意使用它。

不幸的是,Jandex 本身和 Jandex Maven 插件有不同的版本,因此要知道给定的 Jandex Maven 插件版本使用的是哪个 Jandex 版本并不是很简单。这将从 Jandex 3.0 开始发生变化,它们将在同一版本号下一起发布。

此外,不幸的是,Jandex 没有书面的兼容性承诺。我在这里添加了一个:https ://github.com/wildfly/jandex/pull/136


推荐阅读