因爲搜索項目要使用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