我今天请求您的帮助,因为我的Quarkus从2.11版升级到3.6版时遇到了问题.在此更改期间,我获得了以下日志(log):

2023-12-01 14:58:53,946 INFO  [io.qua.dep.dev.IsolatedDevModeMain] (main) Attempting to start live reload endpoint to recover from previous Quarkus startup failure
2023-12-01 14:58:54,378 ERROR [io.qua.dep.dev.IsolatedDevModeMain] (main) Failed to start quarkus: java.lang.EnumConstantNotPresentException: io.quarkus.runtime.annotations.ConfigPhase.BOOTSTRAP
    at java.base/sun.reflect.annotation.EnumConstantNotPresentExceptionProxy.generateException(EnumConstantNotPresentExceptionProxy.java:47)
    at java.base/sun.reflect.annotation.AnnotationInvocationHandler.invoke(AnnotationInvocationHandler.java:89)
    at jdk.proxy2/jdk.proxy2.$Proxy2.phase(Unknown Source)
    at io.quarkus.deployment.configuration.BuildTimeConfigurationReader.<init>(BuildTimeConfigurationReader.java:201)
    at io.quarkus.deployment.configuration.BuildTimeConfigurationReader.<init>(BuildTimeConfigurationReader.java:137)
    at io.quarkus.deployment.ExtensionLoader.loadStepsFrom(ExtensionLoader.java:136)
    at io.quarkus.deployment.QuarkusAugmentor.run(QuarkusAugmentor.java:107)
    at io.quarkus.runner.bootstrap.AugmentActionImpl.runAugment(AugmentActionImpl.java:330)
    at io.quarkus.runner.bootstrap.AugmentActionImpl.createInitialRuntimeApplication(AugmentActionImpl.java:251)
    at io.quarkus.runner.bootstrap.AugmentActionImpl.createInitialRuntimeApplication(AugmentActionImpl.java:60)
    at io.quarkus.deployment.dev.IsolatedDevModeMain.firstStart(IsolatedDevModeMain.java:112)
    at io.quarkus.deployment.dev.IsolatedDevModeMain.accept(IsolatedDevModeMain.java:433)
    at io.quarkus.deployment.dev.IsolatedDevModeMain.accept(IsolatedDevModeMain.java:55)
    at io.quarkus.bootstrap.app.CuratedApplication.runInCl(CuratedApplication.java:138)
    at io.quarkus.bootstrap.app.CuratedApplication.runInAugmentClassLoader(CuratedApplication.java:93)
    at io.quarkus.deployment.dev.DevModeMain.start(DevModeMain.java:131)
    at io.quarkus.deployment.dev.DevModeMain.main(DevModeMain.java:62)

下面是我的pom.xml中包含的依赖项:

    <dependencies>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.28</version>
        </dependency>
        <dependency>
            <groupId>org.mapstruct</groupId>
            <artifactId>mapstruct</artifactId>
            <version>1.5.5.Final</version>
        </dependency>
        <dependency>
            <groupId>org.mapstruct</groupId>
            <artifactId>mapstruct-processor</artifactId>
            <version>1.5.5.Final</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
        </dependency>
        <dependency>
            <groupId>commons-codec</groupId>
            <artifactId>commons-codec</artifactId>
        </dependency>
        <dependency>
            <groupId>io.quarkus</groupId>
            <artifactId>quarkus-arc</artifactId>
        </dependency>
        <dependency>
            <groupId>io.quarkus</groupId>
            <artifactId>quarkus-resteasy-reactive-jackson</artifactId>
        </dependency>
        <dependency>
            <groupId>io.quarkus</groupId>
            <artifactId>quarkus-config-yaml</artifactId>
        </dependency>
        <dependency>
            <groupId>io.quarkus</groupId>
            <artifactId>quarkus-elytron-security-common</artifactId>
        </dependency>
        <dependency>
            <groupId>io.quarkus</groupId>
            <artifactId>quarkus-smallrye-openapi</artifactId>
        </dependency>
        <dependency>
            <groupId>io.quarkus</groupId>
            <artifactId>quarkus-hibernate-validator</artifactId>
        </dependency>
        <dependency>
            <groupId>io.quarkus</groupId>
            <artifactId>quarkus-smallrye-jwt</artifactId>
        </dependency>
        <dependency>
            <groupId>io.quarkus</groupId>
            <artifactId>quarkus-smallrye-jwt-build</artifactId>
        </dependency>
        <dependency>
            <groupId>io.quarkus</groupId>
            <artifactId>quarkus-hibernate-orm-panache</artifactId>
        </dependency>
        <dependency>
            <groupId>io.quarkus</groupId>
            <artifactId>quarkus-jdbc-postgresql</artifactId>
        </dependency>
        <dependency>
            <groupId>io.quarkus</groupId>
            <artifactId>quarkus-flyway</artifactId>
        </dependency>
        <dependency>
            <groupId>io.quarkus</groupId>
            <artifactId>quarkus-rest-client-reactive</artifactId>
        </dependency>
        <dependency>
            <groupId>io.quarkus</groupId>
            <artifactId>quarkus-rest-client-reactive-jackson</artifactId>
        </dependency>
        <dependency>
            <groupId>io.quarkiverse.hibernatetypes</groupId>
            <artifactId>quarkus-hibernate-types</artifactId>
            <version>2.0.0</version>
        </dependency>
        <dependency>
            <groupId>commons-io</groupId>
            <artifactId>commons-io</artifactId>
            <version>2.11.0</version>
        </dependency>
        <dependency>
            <groupId>io.quarkus</groupId>
            <artifactId>quarkus-junit5</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>io.quarkiverse.googlecloudservices</groupId>
            <artifactId>quarkus-google-cloud-storage</artifactId>
            <version>2.1.0</version>
        </dependency>
        <dependency>
            <groupId>com.google.cloud.sql</groupId>
            <artifactId>postgres-socket-factory</artifactId>
            <version>1.11.0</version>
        </dependency>
        <dependency>
            <groupId>org.apache.tika</groupId>
            <artifactId>tika-core</artifactId>
            <version>2.8.0</version>
        </dependency>
        <dependency>
            <groupId>net.coobird</groupId>
            <artifactId>thumbnailator</artifactId>
            <version>0.4.20</version>
        </dependency>
        <dependency>
            <groupId>io.quarkus</groupId>
            <artifactId>quarkus-mailer</artifactId>
        </dependency>
        <dependency>
            <groupId>io.quarkus</groupId>
            <artifactId>quarkus-websockets</artifactId>
        </dependency>
        <dependency>
            <groupId>io.quarkus</groupId>
            <artifactId>quarkus-scheduler</artifactId>
        </dependency>
        <dependency>
            <groupId>io.quarkiverse.bucket4j</groupId>
            <artifactId>quarkus-bucket4j</artifactId>
            <version>1.0.1</version>
        </dependency>
    </dependencies>

为了验证这是一个依赖项问题,我创建了一个新的空白Quarkus 3.6项目并运行它,没有任何故障.当我将项目的依赖项添加到新的测试项目中时,这一次我收到了相同的错误.所以我想知道是哪个库导致了这个问题,以及如何修复它?

感谢您的宝贵时间和无价的帮助!

(我想到了一个在版本3中不再维护的quarkus库)

推荐答案

没有关于消息或依赖项的足够信息,无法按原样说明

我的猜测是,无论出于什么原因,它确实是您try 读取ConfigPhase.BOOTSTRAP的配置的依赖项之一,ConfigPhase.BOOTSTRAPpresent in v2,no longer there in v3no longer there in v3

您可以try 通过从所有内容中删除<version>来更新有问题的依赖项,因为不固定它可能会带来更新的兼容版本,请确保清理maven缓存并在之后固定版本

否则,您可能需要:

  • 手动研究每一个粒子(虽然只研究夸克特有的粒子)
  • 一个接一个地移除,直到你找到有问题的
  • 在新的v3项目上添加依赖项,直到其中一个项目达到dev mode

最糟糕的情况是,您的一个依赖项显然不兼容,您必须推迟迁移或提交PR或找到替代方案.如果要我猜的话,令人不快的依赖是以下之一:

  1. 夸克冬眠型
  2. quarkus-google-cloud-storage
  3. Quarkus-Bucket4j

祝你好运!

Java相关问答推荐

如何计算内循环的时间复杂度?

@ EnableRouting注释在Kotlin项目中不工作

为什么BasicComboBoxRenderer在文本不存在或文本为空的情况下设置两次文本?

Java 21虚拟线程执行器的性能比池化操作系统线程的执行器差?

在springboot 3中,当我调用api endpoint时,会出现404

返回响应时,CamelCase命名约定不起作用

通过移动一个类解决了潜在的StubbingProblem.它怎麽工作?

S,要对Java复制构造函数深度克隆所有属性进行单元测试,最可靠的方法是什么?

如何将Pane的图像快照保存为BMP?

如何在列表(链表)中插入一个新 node (作为prelast)

如果执行@BeForeEach#repository.save(),则测试中的UnitTest最终UUID会发生更改

使用迭代器遍历HashMap不会因IF条件而停止

如何在SWT菜单项文本中保留@字符

在缺少字段时使用Jackson With Options生成Optional.Empty()

如何设计包含已知和未知键值对映射的Java类?

OAuth:登录后无法查看Google邮箱地址

无泄漏函数的Java DRY

如何在Java中正确实现填字游戏求解器

Java 8 中 ByteBuffer 和 BitSet 的奇怪行为

Swagger.io OpenApi v3.0 声明默认媒体类型