調整canal支持高版本,解決打包異常

因爲搜索項目要使用canal增量更新elasticsearch的索引,而下載client-adapter(客戶端適配者)的默認只支持到elasticsearch的6.4版本,但項目中使用elasticsearch的版本是7.3,爲了統一版本,對client-adapter進行改造

一、選擇canal-master項目打開client-adapter模塊,等待maven更新好依賴,對elasticsearch中pom文件的三處舊版本進行調整

在這裏插入圖片描述

二、在canal-master的根目錄下重新打包:mvn clean package -DskipTests

如果編譯報錯 No compiler is provided in this environment,請在maven目錄bin目錄下打開mvn.cmd文件在文件第一行輸入set JAVA_HOME=C:\Program Files\Java\jdk1.8.0_191(此處爲JDK所在路徑)

[ERROR] No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?

三、解決canal-adapter版本升級過程的異常

編譯提示:ESAdapter.java:[225,56] 不兼容的類型,無法轉換爲long
在這裏插入圖片描述

[ERROR] /canal-master/client-adapter/elasticsearch/src/main/java/com/alibaba/otter/canal/client/adapter/es/ESAdapter.java:[225,56] 不兼容的類型: or
g.apache.lucene.search.TotalHits無法轉換爲long

在這裏插入圖片描述
解決方法:在getTotalHits後增加value,因爲ES7後擴大了TotalHits的範圍
在這裏插入圖片描述
調整後繼續編譯打包 mvn package -DskipTests,可直接在剛纔出錯的地方繼續編譯,等待編譯完成,然後直接使用編譯好的client-adapter
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章