protobuf2和3同时安装,结合使用protobuf3和一些依赖于Java中protobuf2的库

I'm using protobuf3 to represent our data, while we need hbase to store the data, it seems like hbase depends on protobuf2.

When i write the following line to create our hbase table

admin.createTable(desc);

then I got an Excepiton: NoClassDefFoundError: com/google/protobuf/LiteralByteString

I've tried using gradle's shadow plugin to relocate com.google.protobuf to shadow.google.com, then it throw a similar message NoClassDefFoundError: shadow/google/protobuf/LiteralByteString.

解决方案Create a sub-project, and name it 'hbase-wrapper'

Move the dependencies for hbase to the new project

Shadow protobuf in the new project

Add dependency to the sub-project on the main project

Here's some snip code

// part of build.gradle of the sub-project

...

dependencies {

compile group: 'org.apache.hbase', name: 'hbase-client', version: '1.2.4'

}

shadowJar {

relocate('com.google.protobuf', 'hbasesaver.google.protobuf')

}

// part of build.gradle for main project

...

compile project(path: ':hbase-wrapper', configuration: 'shadow')

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值