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

grpc-java生成类使用旧包Generated注解,Jakarta环境编译失败如何解决

grpc-java生成代码javax.annotation.Generated注解兼容Jakarta环境解决方案

方案1:直接禁用@Generated注解生成

grpc-java代码生成器原生支持关闭该注解生成,只需在构建工具的protobuf编译配置中为grpc-java插件添加disable_generated_annotations=true参数即可,从根源避免包名冲突问题。

Maven配置示例(基于protobuf-maven-plugin)

<plugin>
  <groupId>org.xolstice.maven.plugins</groupId>
  <artifactId>protobuf-maven-plugin</artifactId>
  <version>0.6.1</version>
  <configuration>
    <protocArtifact>com.google.protobuf:protoc:3.21.7:exe:${os.detected.classifier}</protocArtifact>
    <pluginId>grpc-java</pluginId>
    <pluginArtifact>io.grpc:protoc-gen-grpc-java:1.50.2:exe:${os.detected.classifier}</pluginArtifact>
    <plugins>
      <plugin>
        <id>grpc-java</id>
        <!-- 禁用Generated注解生成 -->
        <options>disable_generated_annotations=true</options>
      </plugin>
    </plugins>
  </configuration>
  <executions>
    <execution>
      <goals>
        <goal>compile</goal>
        <goal>compile-custom</goal>
      </goals>
    </execution>
  </executions>
</plugin>

Gradle配置示例(基于protobuf-gradle-plugin)

protobuf {
    protoc {
        artifact = "com.google.protobuf:protoc:3.21.7"
    }
    plugins {
        grpc {
            artifact = 'io.grpc:protoc-gen-grpc-java:1.50.2'
        }
    }
    generateProtoTasks {
        all().forEach { task ->
            task.plugins {
                grpc {
                    // 禁用Generated注解生成
                    option 'disable_generated_annotations=true'
                }
            }
        }
    }
}

方案2:替换注解为Jakarta版本

如果需要保留@Generated注解,可在grpc-java 1.49.0及以上版本中,通过参数指定注解全类名,直接生成jakarta包下的对应注解。
只需将上述配置中的参数替换为generated_annotation_type=jakarta.annotation.Generated即可:

  • Maven中修改options标签值为<options>generated_annotation_type=jakarta.annotation.Generated</options>
  • Gradle中修改option参数为option 'generated_annotation_type=jakarta.annotation.Generated'

注意:grpc-java版本低于1.49.0时不支持自定义注解类型,建议优先升级grpc版本,或使用方案1禁用注解生成。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 20:27:05