Elasticsearch源码加载到eclipse调试

一、为什么要调试

Elasticsearch是一个搜索的服务框架,大部分的情况下可以利用resetful的特性,进行直接url操作通信,但是可能有时候需要修改其中的某个模块,或者希望是一个你所希望的框架,来完成个性化的定制,或者,更想清除整个的流程,这个时候就需要对源码进行加载调试了,搜了网上的很多资料,发现相关的很少,所以在此将如何调试加载到eclipse中进行简单的介绍

二、所有的步骤

(1)下载elasticsearch源码,本人所使用的是elasticsearch2.1.0,下载地址为https://github.com/elastic/elasticsearch/releases

(2)解压到下载的文件夹,使用eclipse导入file->import->maven->existing maven project,将elasticsearch下面的core目录导入,如下所示:

(3)可能会出现导入错误,如下所示,这个时候可以直接finish直接结束忽略掉

(4)这个时候会出现pom.xml错误,例如Plugin execution not covered by lifecycle configuration: 这种,如下图所示,解决办法如下图2所示,直接点ignore,直接点ok,之后会出现overriding以及id冲突之类的,直接remove,顺序如下图所示

图1-pom.xml错误

                                                                                                                                

                                                                                                                                          图2-直接ignore

                                                                                                           

                                                                                                                  图3-ignore之后点ok

图4-overriding,冲突错误,直接remove

(5)直接点工程,右键 maven->update project,将force勾上,这个步骤是maven中央库进行更新jar包,可能有时候会缺少一些jar包,到时候可以多做几次update操作,用来多次下载提高成功率,可能尝试很多次之后还有些jar包没下下来,1,可以选择将jar包上一层目录删除,重新更新;2,或者将jar包删除,直接从网上下载jar包,这一步很关键,我这边是试过多次之后下载好了,无法重现第一次的情形,望各位见谅;更新之后就无错误了,如下第二张图所示

更新之后工程的样子,已经没有红色的感叹号之类的了,无错误

(6)main/java找到org.elasticsearch.bootstrap的elasticsearch.java   到main函数 run as java application之后,出现如下图所示:出现错误
Exception in thread "main" java.lang.IllegalStateException: path.home is not configured

(7)在main函数右键,run as run configuration,在arguments按照如下填写,path.home=<你的core文件的路径>,点run

(8)之后会出现log路径未找到,config错误等,我这边刚开始出现的是config的logging未找到类似的错误,如下所示:

(9)从elastic的官网  https://www.elastic.co/downloads/past-releases,(下载2.1.0 现在最新是2.1.1但是为了防止配置文件有变动,还是一直保持同一个版本比较好点)已经封装好的elasticsearch,解压,将里面的config文件拷贝到你所调试的工程的core下面,即可,再次run as java application就可以了

这个时候去网页,将ip输入,端口输入即可看到熟悉的返回值

三、总结以及后续

只是开启了学习es的第一步,后续希望可以改造特定的部分,完成定制,在此记录一下,别下次再忘记了

原文地址:https://www.cnblogs.com/xsht/p/5280613.html