升级phoenix-core至5.1.3时遭遇omid依赖模块名称不匹配错误
解决Phoenix 5.1.3升级时Omid依赖模块名称不匹配问题
问题原因
Phoenix 5.1.3依赖适配HBase 2.x的Omid包(omid-hbase-client-hbase2.x、omid-hbase-coprocessor-hbase2.x),但Maven仓库中该版本的Omid包模块元数据存在错误,实际模块名被标记为omid-hbase-client-hbase1.x,导致构建工具(Gradle)校验模块名称时失败。
解决方案
方案1:排除Phoenix自带Omid依赖,手动强制引入正确版本
在Gradle构建文件中,先排除Phoenix依赖中自带的Omid模块,再手动指定引入适配HBase2.x的Omid包:
implementation('org.apache.phoenix:phoenix-core:5.1.3') { // 排除存在模块名错误的Omid依赖 exclude group: 'org.apache.omid', module: 'omid-hbase-client-hbase2.x' exclude group: 'org.apache.omid', module: 'omid-hbase-coprocessor-hbase2.x' } // 手动引入正确版本的Omid包 implementation 'org.apache.omid:omid-hbase-client-hbase2.x:1.0.2' implementation 'org.apache.omid:omid-hbase-coprocessor-hbase2.x:1.0.2'
方案2:忽略模块元数据名称校验
如果方案1无效,可让Gradle跳过模块名称不匹配的校验,直接使用目标JAR包:
configurations.all { resolutionStrategy { // 强制锁定Omid版本 force 'org.apache.omid:omid-hbase-client-hbase2.x:1.0.2' force 'org.apache.omid:omid-hbase-coprocessor-hbase2.x:1.0.2' // 忽略模块名称不匹配的错误 eachModule { module -> if (module.requested.group == 'org.apache.omid' && module.requested.name in ['omid-hbase-client-hbase2.x', 'omid-hbase-coprocessor-hbase2.x']) { module.useTarget(module.requested) } } } }
方案3:临时禁用全局依赖校验
作为兜底方案,可直接关闭Gradle的依赖校验功能(仅临时使用,不推荐长期启用):
dependencyVerification { enabled = false }
内容的提问来源于stack exchange,提问作者Limey
相关产品推荐
相关产品推荐

