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

Gradle构建Quarkus+Infinispan项目时Protobuf marshallers未注册问题

这不是官方仅支持Maven的设计,是Gradle与Maven对注解处理器的默认处理逻辑差异导致的配置遗漏,可按如下步骤修复:

核心原因

Gradle 5.0+ 版本默认将编译类路径和注解处理器路径完全隔离,不会自动从implementation依赖中扫描注解处理器;而Maven未做路径隔离,默认会从编译依赖中自动识别并执行注解处理器,这是两个逻辑一致的项目构建结果不同的根本原因。

修复方案

在你的build.gradle文件的dependencies配置块中,显式声明protostream-processor为注解处理器依赖:

dependencies {
    // 原有项目依赖保持不变
    implementation 'org.infinispan.protostream:protostream'
    // 新增以下注解处理器配置
    annotationProcessor 'org.infinispan.protostream:protostream-processor'
}

可选适配配置

如果开启了Gradle增量编译,可添加如下配置保证生成的marshaller文件被正确识别:

tasks.withType(JavaCompile) {
    options.annotationProcessorGeneratedSourcesDirectory = file("$buildDir/generated-sources/annotations")
}

验证方法

执行./gradlew compileJava命令后,检查build/generated-sources/annotations目录下是否生成了CounterState对应的Marshaller类,存在则说明配置生效,重启项目即可正常运行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 12:54:06