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

Quarkus启动失败:java.lang.NoClassDefFoundError问题求助

GitHub Codespaces运行quarkus-github-app时出现NoClassDefFoundError错误

在GitHub Codespaces中使用quarkus-github-app,执行./mvnw quarkus:dev命令时,出现如下错误:

@MathieuSoysal ➜ /workspaces/Template-Simplifier (main) $ ./mvnw quarkus:dev
[INFO] Scanning for projects...
[INFO] 
[INFO] --------------< io.github.mathieusoysal:template-guider >---------------
[INFO] Building template-guider 1.0.0-SNAPSHOT
[INFO] --------------------------------[ jar ]---------------------------------
[INFO] 
[INFO] --- quarkus-maven-plugin:2.16.2.Final:dev (default-cli) @ template-guider ---
[INFO] Invoking org.apache.maven.plugins:maven-resources-plugin:2.6:resources @ template-guider
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 1 resource
[INFO] Invoking io.quarkus.platform:quarkus-maven-plugin:2.16.2.Final:generate-code @ template-guider
[INFO] Invoking org.apache.maven.plugins:maven-compiler-plugin:3.10.1:compile @ template-guider
[INFO] Nothing to compile - all classes are up to date
[INFO] Invoking org.apache.maven.plugins:maven-resources-plugin:2.6:testResources @ template-guider
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /workspaces/Template-Simplifier/src/test/resources
[INFO] Invoking io.quarkus.platform:quarkus-maven-plugin:2.16.2.Final:generate-code-tests @ template-guider
[INFO] Invoking org.apache.maven.plugins:maven-compiler-plugin:3.10.1:testCompile @ template-guider
[INFO] No sources to compile
Listening for transport dt_socket at address: 5005
2023-02-12 16:40:01,596 INFO  [io.qua.dep.dev.IsolatedDevModeMain] (main) Attempting to start live reload endpoint to recover from previous Quarkus startup failure
2023-02-12 16:40:02,075 ERROR [io.qua.dep.dev.IsolatedDevModeMain] (main) Failed to start quarkus: java.lang.NoClassDefFoundError: jakarta/enterprise/event/Event
        at io.quarkiverse.githubapp.deployment.GitHubAppProcessor.<clinit>(GitHubAppProcessor.java:123)
        at java.base/java.lang.Class.forName0(Native Method)
        at java.base/java.lang.Class.forName(Class.java:467)
        at io.quarkus.deployment.util.ServiceUtil.classesNamedIn(ServiceUtil.java:29)
        at io.quarkus.deployment.ExtensionLoader.loadStepsFrom(ExtensionLoader.java:215)
        at io.quarkus.deployment.QuarkusAugmentor.run(QuarkusAugmentor.java:107)
        at io.quarkus.runner.bootstrap.AugmentActionImpl.runAugment(AugmentActionImpl.java:331)
        at io.quarkus.runner.bootstrap.AugmentActionImpl.createInitialRuntimeApplication(AugmentActionImpl.java:252)
        at io.quarkus.runner.bootstrap.AugmentActionImpl.createInitialRuntimeApplication(AugmentActionImpl.java:60)
        at io.quarkus.deployment.dev.IsolatedDevModeMain.firstStart(IsolatedDevModeMain.java:86)
        at io.quarkus.deployment.dev.IsolatedDevModeMain.accept(IsolatedDevModeMain.java:447)
        at io.quarkus.deployment.dev.IsolatedDevModeMain.accept(IsolatedDevModeMain.java:59)
        at io.quarkus.bootstrap.app.CuratedApplication.runInCl(CuratedApplication.java:149)
        at io.quarkus.bootstrap.app.CuratedApplication.runInAugmentClassLoader(CuratedApplication.java:104)
        at io.quarkus.deployment.dev.DevModeMain.start(DevModeMain.java:131)
        at io.quarkus.deployment.dev.DevModeMain.main(DevModeMain.java:62)
Caused by: java.lang.ClassNotFoundException: jakarta.enterprise.event.Event
        at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641)
        at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520)
        at io.quarkus.bootstrap.classloading.QuarkusClassLoader.loadClass(QuarkusClassLoader.java:516)
        at io.quarkus.bootstrap.classloading.QuarkusClassLoader.loadClass(QuarkusClassLoader.java:466)
        ... 16 more

问题分析

这个错误不是Quarkus本身或GitHub Codespaces环境导致的,核心原因是项目缺少CDI(上下文和依赖注入)相关的依赖:jakarta.enterprise.event.Event是CDI规范中的类,quarkus-github-app扩展依赖CDI,但项目未引入对应的Quarkus CDI扩展。

解决步骤

  • 添加Quarkus CDI扩展依赖:打开项目的pom.xml,添加以下依赖:

    <dependency>
        <groupId>io.quarkus</groupId>
        <artifactId>quarkus-arc</artifactId>
    </dependency>
    

    这个扩展是Quarkus实现CDI的核心组件,quarkus-github-app运行必须依赖它。

  • 校验版本兼容性:确保quarkus-github-app的版本与当前使用的Quarkus 2.16.2.Final版本兼容。如果版本不匹配,调整quarkus-github-app的版本号,或升级/降级Quarkus版本保持一致。

  • 清理并重新下载依赖:执行以下命令清理Maven缓存,强制更新所有依赖:

    ./mvnw clean install -U
    
  • 重启开发模式:完成上述操作后,重新执行:

    ./mvnw quarkus:dev
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 17:55:42