java - Quarkus 抛出 org.jboss.jandex.UnsupportedVersion : Version: 10 during tests

标签 java quarkus jandex

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

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

org.jboss.jandex.UnsupportedVersion: Version: 10

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

最佳答案

这是因为 Jandex 索引是由 Jandex 2.4.0.Final 生成的,它使用较新版本的索引格式(特别是版本 10)。 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 没有书面的兼容性 promise 。我在这里添加了一个:https://github.com/wildfly/jandex/pull/136

关于java - Quarkus 抛出 org.jboss.jandex.UnsupportedVersion : Version: 10 during tests,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69112970/

相关文章:

java - 用 getResourceAsStream 替换 FileInputStream

java - Java 中形成匹配谓词集合的对象集合的最快方法是什么?

hibernate - 如何使用 Quarkus 和 Panache 在 snake case 中获取表名

Quarkus RestClient close()

kotlin - 无法在 Quarkus kotlin 应用程序中注入(inject) REST 客户端接口(interface)

java - 为什么我新创建的 Ebean 对象的 id 错误?

java - 由于 android 中的空指针异常,我无法获取数据