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

Docker构建Quarkus 2.2.1原生可执行文件报Annotated类需为final错误问询

报错原因

这个报错是GraalVM版本与Quarkus 2.2.1.Final自带的amazon-lambda-http扩展不兼容导致的:GraalVM 21.3及以上版本新增了校验规则,要求@Substitute注解修饰的替换类必须声明为final,而Quarkus 2.2.1.Final内置的io.quarkus.amazon.lambda.http.graal.LambdaContainerHandlerSubstitution类未添加final修饰,触发了校验错误。

解决方案
  • 方案1(最推荐):升级Quarkus版本
    直接将项目pom.xml中的Quarkus版本升级到2.7.7.Final及以上的2.x稳定版,官方在后续版本中已经修复了该类的final修饰问题,无需修改其他配置即可正常构建。
  • 方案2(不升级Quarkus版本的临时解决):指定兼容的GraalVM构建镜像
    在原构建命令中新增参数指定Quarkus原生构建使用21.2.x版本的GraalVM镜像,该版本没有新增的final校验规则,适配Quarkus 2.2.1.Final,完整命令如下:
    mvn clean package "-Pnative" "-Dquarkus.native.container-build=true" "-Dquarkus.native.container-runtime=docker" "-Dquarkus.native.builder-image=quay.io/quarkus/ubi-quarkus-native-image:21.2.0-java11"
    
  • 方案3:移除无关依赖
    如果你的项目没有用到AWS Lambda相关能力,直接从pom.xml中删除quarkus-amazon-lambda-http依赖即可,不会影响其他功能的原生构建。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 07:48:03