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

Quarkus应用构建报错java.lang.NoSuchMethodError问题求助

构建Quarkus应用时遭遇NoSuchMethodError构建失败问题分析与解决

错误信息

Failed to execute goal io.quarkus:quarkus-maven-plugin:2.6.0.Final:build (default) on project irxpp-jobs: Execution default of goal io.quarkus:quarkus-maven-plugin:2.6.0.Final:build failed: An API incompatibility was encountered while executing io.quarkus:quarkus-maven-plugin:2.6.0.Final:build: java.lang.NoSuchMethodError: 'io.quarkus.paths.PathCollection io.quarkus.bootstrap.app.QuarkusBootstrap.getApplicationRoot()'

项目依赖配置

<dependencies>
    <!-- https://mvnrepository.com/artifact/io.quarkus/quarkus-hibernate-orm -->
    <dependency>
        <groupId>io.quarkus</groupId>
        <artifactId>quarkus-hibernate-orm</artifactId>
    </dependency>
    <!-- https://mvnrepository.com/artifact/org.webjars/jquery -->
    <dependency>
        <groupId>org.webjars</groupId>
        <artifactId>jquery</artifactId>
        <version>3.5.0</version>
    </dependency>

    <dependency>
        <groupId>io.quarkus</groupId>
        <artifactId>quarkus-resteasy</artifactId>
    </dependency>
    <dependency>
        <groupId>io.quarkus</groupId>
        <artifactId>quarkus-smallrye-openapi</artifactId>
    </dependency>
    <dependency>
        <groupId>io.quarkus</groupId>
        <artifactId>quarkus-resteasy-jackson</artifactId>
    </dependency>


    <dependency>
        <groupId>io.quarkus</groupId>
        <artifactId>quarkus-hibernate-orm-panache</artifactId>
    </dependency>
    <dependency>
        <groupId>com.oracle.database.jdbc</groupId>
        <artifactId>ojdbc8</artifactId>
    </dependency>
    <dependency>
        <groupId>org.apache.camel</groupId>
        <artifactId>camel-zipfile</artifactId>
        <version>3.10.0</version>
    </dependency>
    <dependency>
        <groupId>io.quarkus</groupId>
        <artifactId>quarkus-junit5-mockito</artifactId>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>1.18.12</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>io.quarkus</groupId>
        <artifactId>quarkus-narayana-jta</artifactId>
    </dependency>
    <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-lang3</artifactId>
    </dependency>
    <!-- https://mvnrepository.com/artifact/commons-beanutils/commons-beanutils -->
    <dependency>
        <groupId>commons-beanutils</groupId>
        <artifactId>commons-beanutils</artifactId>
        <version>1.9.4</version>
    </dependency>

    <!-- https://mvnrepository.com/artifact/io.quarkus/quarkus-hibernate-orm-deployment -->
    <dependency>
        <groupId>io.quarkus</groupId>
        <artifactId>quarkus-hibernate-orm-deployment</artifactId>
    </dependency>

    <dependency>
        <groupId>io.quarkus</groupId>
        <artifactId>quarkus-junit5</artifactId>
        <scope>test</scope>
    </dependency>

    <dependency>
        <groupId>io.rest-assured</groupId>
        <artifactId>rest-assured</artifactId>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>com.mashape.unirest</groupId>
        <artifactId>unirest-java</artifactId>
        <version>1.4.9</version>
    </dependency>
    <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-lang3</artifactId>
        </dependency>
    <dependency>
        <groupId>org.apache.poi</groupId>
        <artifactId>poi-ooxml</artifactId>
        <version>5.1.0</version>
    </dependency>

    <!-- https://mvnrepository.com/artifact/com.amazonaws/aws-java-sdk-core -->
    <dependency>
        <groupId>com.amazonaws</groupId>
        <artifactId>aws-java-sdk-core</artifactId>
        <version>1.12.276</version>
    </dependency>

    <!-- https://mvnrepository.com/artifact/software.amazon.awssdk/s3 -->
    <dependency>
        <groupId>software.amazon.awssdk</groupId>
        <artifactId>s3</artifactId>
        <version>2.17.40</version>
        <scope>test</scope>
    </dependency>

    <!-- https://mvnrepository.com/artifact/com.amazonaws/aws-java-sdk-s3 -->
    <dependency>
        <groupId>com.amazonaws</groupId>
        <artifactId>aws-java-sdk-s3</artifactId>
        <version>1.12.276</version>
    </dependency>

    <!-- https://mvnrepository.com/artifact/com.amazonaws/aws-java-sdk-sns -->
    <dependency>
        <groupId>com.amazonaws</groupId>
        <artifactId>aws-java-sdk-sns</artifactId>
        <version>1.11.714</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/io.quarkus/quarkus-agroal-spi -->
    <dependency>
        <groupId>io.quarkus</groupId>
        <artifactId>quarkus-agroal-spi</artifactId>
        
    </dependency>
    <!-- https://mvnrepository.com/artifact/io.quarkus/quarkus-datasource-deployment -->
    <dependency>
        <groupId>io.quarkus</groupId>
        <artifactId>quarkus-datasource-deployment</artifactId>
        
    </dependency>
    <!-- https://mvnrepository.com/artifact/io.quarkus/quarkus-core-deployment -->
    <dependency>
        <groupId>io.quarkus</groupId>
        <artifactId>quarkus-core-deployment</artifactId>
        <version>2.7.6.Final</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/io.quarkus/quarkus-jdbc-postgresql -->
    <dependency>
        <groupId>io.quarkus</groupId>
        <artifactId>quarkus-jdbc-postgresql</artifactId>
        <version>2.7.1.Final</version>
    </dependency>

</dependencies>

问题分析

  1. Quarkus版本不一致:Maven插件使用2.6.0.Final,但部分Quarkus核心依赖(如quarkus-core-deployment用2.7.6.Final、quarkus-jdbc-postgresql用2.7.1.Final)版本更高,导致API不兼容——高版本中QuarkusBootstrap.getApplicationRoot()方法的签名或存在性与2.6.0.Final不匹配,触发NoSuchMethodError。
  2. 冗余/错误依赖:
    • 存在重复的commons-lang3依赖。
    • 手动引入了quarkus-hibernate-orm-deployment、quarkus-datasource-deployment等deployment类型依赖,这类依赖属于Quarkus构建时的内部依赖,无需手动添加到项目依赖中。

解决方案

1. 统一Quarkus依赖版本

在pom.xml中添加Quarkus BOM,让所有Quarkus相关依赖自动对齐版本,避免手动指定版本导致的不一致:

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>io.quarkus</groupId>
            <artifactId>quarkus-bom</artifactId>
            <version>2.6.0.Final</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

然后移除所有Quarkus依赖的手动版本指定(如quarkus-core-deployment的2.7.6.Final、quarkus-jdbc-postgresql的2.7.1.Final)。

2. 清理冗余依赖

  • 删除重复的commons-lang3依赖,只保留一个即可。
  • 删除所有deployment类型的依赖:quarkus-hibernate-orm-deployment、quarkus-datasource-deployment、quarkus-core-deployment。

3. 清理Maven缓存并重新构建

执行以下命令强制更新依赖并重新构建:

mvn clean install -U

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 12:45:34