引入Google Cloud Speech依赖时javax.annotation包重复类冲突如何解决
冲突根因
你遇到的类重复冲突是因为com.google.cloud:google-cloud-speech依赖同时传递引入了两个功能完全重叠的注解包:
- 旧版JSR250规范实现:
javax.annotation:jsr250-api:1.0 - 官方后续维护的新版统一注解包:
javax.annotation:javax.annotation-api:1.3.2
两个包包含完全相同的javax.annotation路径下的类,构建阶段就会触发重复类报错。
解决方案(Gradle项目适用,匹配你当前使用的配置方式)
方案1:仅在Google Cloud Speech依赖中排除冲突包
修改你的依赖配置如下,直接在引入google-cloud-speech时排除旧的jsr250-api即可:
// Libraries implementation platform('com.google.cloud:libraries-bom:20.8.0') implementation ('com.google.cloud:google-cloud-speech') { exclude group: 'javax.annotation', module: 'jsr250-api' }
方案2:全局排除冲突包
如果项目其他依赖也可能引入jsr250-api,可以在build.gradle文件的根配置下添加全局排除规则:
configurations { all*.exclude group: 'javax.annotation', module: 'jsr250-api' }
保留版本更高的javax.annotation-api:1.3.2即可完全覆盖jsr250-api的所有功能,不会影响项目正常运行。
验证修改
配置修改完成后执行构建命令验证是否修复:./gradlew clean build(Windows系统执行gradlew.bat clean build)
你也可以执行./gradlew dependencies查看依赖树,确认jsr250-api已经被完全排除。
内容的提问来源于stack exchange,提问作者Ahsan Ali
相关产品推荐
相关产品推荐

