调整canal支持高版本,解决打包异常
canal
alibaba/canal: Canal 是由阿里巴巴开源的分布式数据库同步系统,主要用于实现MySQL数据库的日志解析和实时增量数据订阅与消费,广泛应用于数据库变更消息的捕获、数据迁移、缓存更新等场景。
项目地址:https://gitcode.com/gh_mirrors/ca/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
GitHub 加速计划 / ca / canal
28.22 K
7.57 K
下载
alibaba/canal: Canal 是由阿里巴巴开源的分布式数据库同步系统,主要用于实现MySQL数据库的日志解析和实时增量数据订阅与消费,广泛应用于数据库变更消息的捕获、数据迁移、缓存更新等场景。
最近提交(Master分支:3 个月前 )
1e5b8a20 - 2 个月前
ff82fd65
2 个月前
更多推荐
已为社区贡献6条内容
所有评论(0)