下载源码
从https://github.com/elastic/elasticsearch上下载相应版本的源代码,本人下载的是5.4.2版本的源代码
获取相关依赖
Elasticsearch在5.4版本是采用gradle来管理的,进入源码的根目录,因为我用的是idea编译器,因此执行:
gradle idea
然后进入漫长的下载相关依赖包的过程
如果觉得国外的镜像下载速度过慢,可以采用国内的镜像,在根目录的build.gradle文件中的allprojects内添加阿里云的镜像:
allprojects {
repositories {
maven { url "http://maven.aliyun.com/nexus/content/groups/public/" }
}
}
导入idea
在Idea中导入Elasticsearch源码,入口类文件为:
core/src/main/java/org/elasticsearch/bootstrap/Elasticsearch.java
点击编译运行
报错处理
报错1
Exception in thread "main" java.lang.IllegalStateException: path.home is not configured
...
这个错误是没有指定项目的配置目录,因为运行Elasticsearch需要相应的插件、模块以及配置文件
因此,可以在官网上下载一个相应版本的编译好的Elasticsearch(如果源码是5.4.2,就要下载版本为5.4.2的发行版),将path.home指向其解压后的根目录,如果版本不一致,运行时会出错
而要加上path.home,我们可以直接修改虚拟机的运行参数,在idea中的Run菜单下点击Edit Configurations选项,配置VM options参数为:
-Des.path.home=D:\Java\elasticsearch //elasticsearch发行版的根目录
报错2
2017-