Quarkus从2.11升级到3.6出现EnumConstantNotPresentException求助
Quarkus 3.6启动报错EnumConstantNotPresentException: ConfigPhase.BOOTSTRAP的解决方法
这个错误是因为项目中存在依赖Quarkus 2.x旧API的第三方扩展,io.quarkus.runtime.annotations.ConfigPhase.BOOTSTRAP枚举常量在Quarkus 3.x版本中已被移除,部分旧版本扩展仍在引用它,导致启动时无法找到该枚举。
从你的依赖列表来看,问题出在以下几个Quarkiverse第三方扩展的旧版本上:
io.quarkiverse.hibernatetypes:quarkus-hibernate-types:2.0.0:仅兼容Quarkus 2.x,不支持3.xio.quarkiverse.googlecloudservices:quarkus-google-cloud-storage:2.1.0:2.x版本对应Quarkus 2.x生态io.quarkiverse.bucket4j:quarkus-bucket4j:1.0.1:1.x版本仅适配Quarkus 2.x
解决步骤
将上述三个扩展升级到兼容Quarkus 3.6的版本:
- quarkus-hibernate-types升级到
3.0.0(适配Quarkus 3.x) - quarkus-google-cloud-storage升级到
3.4.0(对应Quarkus 3.6兼容版本) - quarkus-bucket4j升级到
2.1.0(适配Quarkus 3.x)
修改后的依赖片段:
<dependency> <groupId>io.quarkiverse.hibernatetypes</groupId> <artifactId>quarkus-hibernate-types</artifactId> <version>3.0.0</version> </dependency> <dependency> <groupId>io.quarkiverse.googlecloudservices</groupId> <artifactId>quarkus-google-cloud-storage</artifactId> <version>3.4.0</version> </dependency> <dependency> <groupId>io.quarkiverse.bucket4j</groupId> <artifactId>quarkus-bucket4j</artifactId> <version>2.1.0</version> </dependency>
验证方法
- 执行
mvn clean install清理旧依赖并重新构建 - 启动Quarkus开发模式
mvn quarkus:dev,确认错误消失
补充说明
Quarkus 3.x相对于2.x有较多API变更,第三方扩展需同步升级才能兼容。后续升级Quarkus版本时,要注意检查所有Quarkiverse扩展的版本兼容性,确保其版本与Quarkus核心版本匹配。
内容的提问来源于stack exchange,提问作者Miyonu
相关产品推荐
相关产品推荐

