我们有一些 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 种常见方法:
- 如果您没有为 Jandex Maven 插件指定 Jandex 依赖项,Jandex Maven 插件将使用其构建的任何内容。也就是说,Jandex Maven 插件 1.2.0 将使用 Jandex 2.4.0.Final。早期版本的 Jandex Maven 插件使用早期的 Jandex 版本。
- 如果您为 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/