elasticsearch 7.6.2 修改源码 适配 opensearch/金蝶ase 踩坑记录

最近做国产化软件 金蝶ase 适配工作,本来以前是用的 elasticsearch,使用 elasticsearch-rest-high-level-client 调用 es。而金蝶ase 是基于 opensearch 改造的,所以先尝试代码能否兼容。经过各类 文档操作api 测试,最终发现 index、update、delete、bulk 的响应体解析异常,究其原因发现 金蝶ase 没有返回 "type":"_doc",而 elasticsearch-rest-high-level-client 中的 DocWriteResponse 构造方法断言 type 不为 null。
![在这里插入图片描述]在这里插入图片描述

一、下载源码

先 git clone https://github.com/elastic/elasticsearch.git ,分支都是大版本例如7.6、7.9,我要找7.6.2 切 7.6 版本的,但是构建的时候有一些问题需要修改版本。所以最好从 release 页面 https://github.com/elastic/elasticsearch/releases?q=7.6.2&expanded=true,找到对应的小版本,例如7.6.2,下载源码压缩包 source code。
在这里插入图片描述

二、解决报错

1.gradle 压缩包下载超时

es 项目使用的是 gradle,我们开局先打开 build.gradle 这个文件,点击刷新按钮,它会下载 gradle 的压缩包,可能会连接超时在这里插入图片描述
在这里插入图片描述

在设置里设置科学上网软件的端口就能顺利下载了。
在这里插入图片描述

2.gradle 要求至少 java 11

在这里插入图片描述
这里很坑,切换项目 project structure 里的 jdk 不管用,必须改设置里的 gradle jvm
在这里插入图片描述

3.gradle 插件下载失败

在这里插入图片描述
再 buildSrc\build.gradle 文件中,修改仓库地址

repositories {  
  center()
  mavenCentral()
  maven { url 'https://plugins.gradle.org/m2/' }  // 添加Gradle插件仓库
  maven { url 'https://maven.aliyun.com/repository/public' }  // 添加Gradle插件仓库
  maven { url 'https://maven.aliyun.com/repository/spring' }  // 添加Gradle插件仓库
}

在这里插入图片描述

4.es 插件要求 JAVA_HOME 为 java 13

在这里插入图片描述
es 插件编译需要用到 java 13,直接从 idea 随便下个 java 13,然后配置一下系统环境变量,JAVA_HOME 配置 java 13 目录,再添加 %JAVA_HOME%\bin 到 PATH,这一步必须重启电脑,idea 内的环境变量还是旧的。
在这里插入图片描述

5.分支错误

在这里插入图片描述
提示分支不正确,由于我这个项目是直接下载的源码,所以先 git init,建个 main 分支,然后随便 commit 一点东西。

后面就没错误了,坐等完成在这里插入图片描述

三、修改源码并构建

1.构造方法添加判断

在这里插入图片描述

2.构建发布

编辑buildSrc/build.gradle,最后判断是否构建快照,从 loadedProps 读取配置

在这里插入图片描述

在 version.propertis 中添加 build.snapshot = false,直接构建发布版本而不是快照版本。

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

但是这时缺少源码,再构建源码的 jar 包

在这里插入图片描述
在这里插入图片描述

3.把生成的 jar 包放到私有仓库

删掉旧文件,换成新文件。
在这里插入图片描述

刷一下maven,发现已经是修改后的代码了。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值