Elasticsearch源码调试环境配置
本文介绍一下Elasticsearch在本地IDE中的调试配置,方便源码阅读和开发。
重要的选择
在开始搭建环境之前,需要作出两个重要的决定:
- Elasticsearch什么版本
- Java要什么版本
比较好的组合是:Elasticsearch 6.x及以下配Java 8,Elasticsearch 7.x配Java 9。
这是因为Elasticsearch 6.x使用了一些在Java 9中被废弃的包,这时候如果用Java 9来编译的话需要一些额外配置(后面会提到一点点)。而Elasticsearch 7.x是强制需要Java 9来编译的。
虽然可以做一些workaround让build跑起来,但是后面还会遇到一些很难受的坑(test过不去之类的),所以强烈建议使用Java 8编译Elasticsearch 6.x。
源码准备
1. 安装gradle
1 |
brew install gradle |
2. 安装Java 9,到Java官网下载安装
PS: 在master分支上(当前是v7.0.0 alpha)要强制Java9,这里就先装了~
3. 下载代码,切换到一个比较新的Tag,当前最新的是v6.1.3
1 2 |
git clone https://github.com/elastic/elasticsearch.git git checkout v6.1.3 |
4. 下载依赖和生成IDEA所需要的项目配置
1 |
gradle idea |
5. 设置JAVA_HOME
Elasticsearch项目的编译和运行都需要环境变量显示定义环境变量JAVA_HOME,具体原因见这里,如果不知道在哪的话可以运行 /usr/libexec/java_home 来看下。
6. 编译
1 |
gradle build -x test -x integTest |
(-x test -x integTest可以跳过漫长的单元测