a.l*_*.l. 5 java hbase protocol-buffers gradle
我使用protobuf3来表示我们的数据,虽然我们需要hbase来存储数据,但看起来hbase依赖于protobuf2。
当我编写以下行来创建 hbase 表时
admin.createTable(desc);
Run Code Online (Sandbox Code Playgroud)
然后我得到了一个异常:NoClassDefFoundError: com/google/protobuf/LiteralByteString
我尝试使用gradle的shadow插件将com.google.protobuf重新定位到shadow.google.com,然后它抛出类似的消息NoClassDefFoundError: shadow/google/protobuf/LiteralByteString
。
这是一些片段代码
// 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')
Run Code Online (Sandbox Code Playgroud)