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

IntelliJ无法运行Quarkus测试,报NoSuchMethodError错误

解决IntelliJ中Quarkus测试抛出NoSuchMethodError的问题

问题根源

命令行执行测试正常,但IntelliJ里报错的核心原因是Jandex版本冲突:

  • QuarkusTestExtension依赖的旧版Jandex(多为2.x系列)中,org.jboss.jandex.Indexer.index(java.io.InputStream)方法返回值为void
  • 项目实际引入了Jandex 3.0.5.FINAL,该版本中同方法返回ClassInfo,方法签名不匹配触发报错
  • 命令行测试正常是因为Maven/Gradle的依赖解析会优先使用Quarkus bom管理的版本,而IntelliJ直接运行时可能加载了冲突的高版本Jandex

修复步骤

1. 强制统一Jandex版本

在pom.xml中明确指定与Quarkus bom一致的Jandex版本,覆盖冲突的3.0.5版本:

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.jboss</groupId>
            <artifactId>jandex</artifactId>
            <!-- 替换为你所用Quarkus版本对应的Jandex版本,例如2.4.2.Final -->
            <version>2.4.2.Final</version>
        </dependency>
    </dependencies>
</dependencyManagement>

若未使用bom,直接在dependencies节点添加上述依赖,同时给其他引入Jandex的依赖添加排除规则,避免拉取3.0.5版本。

2. 刷新IntelliJ依赖缓存

  • 点击右侧Maven面板的刷新按钮(或按Ctrl+Shift+O)
  • 执行mvn clean install -DskipTests重新构建项目,确保依赖正确下载到本地仓库

3. 让IntelliJ复用Maven的运行逻辑

打开测试类的运行配置,在Build and run选项中勾选Delegate IDE build/run actions to Maven,让IntelliJ和命令行使用相同的依赖解析与构建流程。

验证

重新在IntelliJ中点击测试类旁的运行按钮,确认测试正常执行,不再抛出NoSuchMethodError错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 06:54:57