elasticsearch源码分析——源码编译,
分析源码,首先要从搭建编译运行环境开始
之前用solr比较多,限于solr不能做动态扩容,现在转战elasticsearch
| 项目 | 版本 |
|---|---|
| 运行环境 | windows |
| IDE | intellij 2018.1.4 |
| JDK | 1.8.0_171 |
| elasticsearch | 5.5.1 |
| gradle | 4.3 |
| maven | 3.5.0 总是用得上的 |
备注:之前一直都用的是1.8.0_25,但是吧,编译的时候直接说这个版本的bug,编译不成功。好吧。
最早接触的就是es5.5.1版本,有想过使用6.2.3,但是吧,编译的时候又是一堆问题,JDK要9以上的。索性还是用5.5.1的版本吧。不同的es版本对gradle的要求也不一样
编译前准备
源码
源码路径贴一下吧:https://github.com/elastic/elasticsearch/tree/v5.5.1
官网可以直接下载可运行版本:https://www.elastic.co/products/elasticsearch
当然官方文档都是要学习一下的吧,reference, java API。
JDK
不多说了
gradle
官方地址:https://gradle.org/install/
试过在mac os上安装,配置完brew[连接有说明如何安装],下载还是很方便的。
maven
官方地址:http://maven.apache.org/
仓库:http://mvnrepository.com/
编译源码
maven源
国内的maven源,阿里还是很好用的。
build.gradle文件中的allprojects添加repositories
allprojects {
repositories {
maven { url "http://maven.aliyun.com/nexus/content/groups/public/" }
}
}
编译
gradle clean
gradle idea
gradle run
如果没有什么意外,就等待运行完成,就会在源码目录下生成,distribution\build\cluster\run node0\elasticsearch-5.5.1-SNAPSHOT这样一个路径。
现在就打开IDE,导入源码目录,前提前面的gradle都已经安装。
启动参数配置
VM options配置 -Des.path.home="E:\Projects\es-6.2.3\source\elasticsearch-5.5.1\distribution\build\cluster\run node0\elasticsearch-5.5.1-SNAPSHOT" -Dlog4j2.disable.jmx=true
Main class: org.elasticsearch.bootstrap.Elasticsearch
6.2.3好像还要配置config目录
* org.elasticsearch.bootstrap.Elasticsearch 是启动入口,源码分析的话从这地方就能看到,es是如何初始化。Node加载,Guice注入*
写在前面的话