首先下载 es6.0源码 ,另外下载一个es6.0的发行版本 在git上虽然显示是6.0 其实是6.0.2的版本所以在后续的安装中会跑一个异常
下载完之后 可以直接通过eclipse的gradle插件导入项目或者idea的gradle导入,当然也可以使用 gradle的命令 gradle eclipse 或者 gradle idea ,因为es5.x版本以来使用gradle来管理的所以得先安装gradle才行 中间可能会各种各样的下载不了依赖什么的 见招拆招吧 编译源码后开始导入 我导入在eclipse中 报错 在运行参数中添加
-Des.path.home=/Users/wangwang/java/es6.0/es/elasticsearch/core
运行后又报错 继续在运行参数中添加 -Des.path.conf=/Users/wangwang/java/es6.0/es/elasticsearch/core/src/main/resources
运行后又报错 原因是系统用户的问题 继续在运行中添加参数 Djava.security.policy=/Users/wangwang/java/es6.0/es/elasticsearch/distribution/src/main/resources/config/elasticsearch.policy
新建一个elasticsearch.policy 内容为
grant {
permission javax.management.MBeanTrustPermission "register";
permission javax.management.MBeanServerPermission "createMBeanServer";};
运行后还会报一个错 在需要在core文件夹下新建一个空的plugins即可 这里放的就是es的插件了 如ik 等,然后将发行版的modules完整拷贝到core文件夹下 注意版本一致否则会报错 建完后的elasticsearch/core 文件目录是这样的
准备完毕后还会报错 原因是 用的是源码编译而运行的时候会默认用发型版本的 如elasticsearch6.0-SNAPSHOT.jar 找到
org.elasticsearch.Build的78行将isSnapshot改为false 继续运行还会报错原因就是因为最开始说的版本号问题
找到org.elasticsearch.Version的138行改成 public static final Version CURRENT = V_6_0_0;
修改完成后运行
https://github.com/wangnanhui/ElasticsSearch.git 编译好的我放在git上了 直接通过gradle 导入就行