工作中经常使用es,所以想研究一下es的源码,常用的es版本为2.1.0,所以此系列以2.1.0为准
1、下载源码
网址:https://github.com/elastic/elasticsearch,选择tag为2.1.0 ,下载zip文件解压。
或者用git下载,方法为:git clone https://github.com/elastic/elasticsearch.git
之后在git环境执行git tag #可以看到2.1.0的版本
git checktout 2.1.0 即可得到2.1.0的es源码
2、编译源码
elasticsearch的源码最早使用maven管理,后期使用的是gradle。这里用的是mvn
直接执行mvn clean package -DskipTests
如果有报错,可以用根据报错下载相应的jar到本地的maven库里即可。
等出现build success信息的时候代表成功了。
可以到core/target目录下看到elasticsearch-2.1.0-SNAPSHOT.jar。
编译完成后转换成eclipse工程:
进入本地elasticsearch-2.1.0/core目录下,执行mvn eclipse:eclipse
同样会有很多报错,我遇到最多是找不到jar的解决方法是在/elasticserach-2.1.0下面对应的目录target里面去找。找到后拷贝到本地的maven repo对应的目录里面。
编译成功会看到.classpath 和.project文件。
把core 当做普通java 工程import就可以了
3、运行elasticsearch
打开刚刚导入成功的工程:
Run As----Run Configution---Args
设置ProgramArgument 为 start
设置VMArgument为 -Des.path.home=..\elasticsearch-2.1.0\core\ #对应的目录,如果不可以,用绝对路径
然后就可以运行。
可能会有[WARN ][bootstrap ] unable to install syscall filter: syscall filtering not supported for OS的警告,不过可以忽略。
最后在本地的localhost:9200可以看到运行成功