Java 8集成Google Analytics Data (GA4) API的Maven依赖异常排查
问题分析
你遇到的java.lang.NoClassDefFoundError: com/google/longrunning/GetOperationRequest错误,核心原因是缺少Google LongRunning API的Protobuf定义依赖——当前pom.xml仅引入了该API的gRPC Stub实现,未包含对应的核心类定义;同时Java 8环境下,部分依赖版本可能存在兼容性问题。
解决方案
1. 补充缺失的Protobuf依赖
在pom.xml中添加proto-google-longrunning-v1依赖,版本与已有的grpc-google-longrunning-v1保持一致:
<dependency> <groupId>com.google.api.grpc</groupId> <artifactId>proto-google-longrunning-v1</artifactId> <version>0.1.24</version> </dependency>
2. 调整依赖版本适配Java 8
部分高版本Google客户端库默认不再兼容Java 8,建议调整以下依赖版本:
- 将
gax和gax-grpc从2.19.0降级到2.18.0(该版本明确支持Java 8) - 保留
guava 31.1-jre(32+版本不再支持Java 8)
3. 排查依赖冲突
执行Maven命令查看依赖树,确认是否存在版本冲突:
mvn dependency:tree
若发现com.google.longrunning相关类存在多版本冲突,通过<exclusions>标签排除冗余依赖。
完整适配后的依赖示例
<dependencies> <dependency> <groupId>com.google.auth</groupId> <artifactId>google-auth-library-oauth2-http</artifactId> <version>1.11.0</version> </dependency> <dependency> <groupId>com.google.analytics</groupId> <artifactId>google-analytics-data</artifactId> <version>0.14.4</version> </dependency> <dependency> <groupId>com.google.auth</groupId> <artifactId>google-auth-library-credentials</artifactId> <version>1.11.0</version> </dependency> <dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> <version>31.1-jre</version> </dependency> <dependency> <groupId>com.google.api</groupId> <artifactId>api-common</artifactId> <version>2.2.1</version> </dependency> <dependency> <groupId>io.grpc</groupId> <artifactId>grpc-alts</artifactId> <version>1.49.0</version> <scope>runtime</scope> </dependency> <dependency> <groupId>com.google.api</groupId> <artifactId>gax-grpc</artifactId> <version>2.18.0</version> </dependency> <dependency> <groupId>com.google.api</groupId> <artifactId>gax</artifactId> <version>2.18.0</version> </dependency> <dependency> <groupId>com.google.api.grpc</groupId> <artifactId>grpc-google-longrunning-v1</artifactId> <version>0.1.24</version> </dependency> <!-- 新增缺失的Protobuf核心依赖 --> <dependency> <groupId>com.google.api.grpc</groupId> <artifactId>proto-google-longrunning-v1</artifactId> <version>0.1.24</version> </dependency> </dependencies>
验证步骤
- 执行Maven清理构建:
mvn clean install - 重新运行Java程序,确认错误是否消除。
内容的提问来源于stack exchange,提问作者Shila Mosammami
相关产品推荐
相关产品推荐

