簡體   English   中英

結合使用protobuf3和一些依賴於Java中protobuf2的庫

[英]use protobuf3 with some lib which depends on protobuf2 in Java

我正在使用protobuf3表示我們的數據,盡管我們需要hbase來存儲數據,但似乎hbase取決於protobuf2。

當我寫以下行來創建我們的hbase表時

admin.createTable(desc);

然后我得到了一個Excepiton: NoClassDefFoundError: com/google/protobuf/LiteralByteString

我嘗試使用gradle的shadow插件將com.google.protobuf重定位到shadow.google.com,然后它拋出類似的消息NoClassDefFoundError: shadow/google/protobuf/LiteralByteString

  1. 創建一個子項目,並將其命名為“ hbase-wrapper”
  2. 將hbase的依賴項移至新項目
  3. 新項目中的Shadow protobuf
  4. 將依賴項添加到主項目的子項目中

這是一些代碼

// 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')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM