Elasticsearch源码分析 - 源码构建
程序员文章站
2022-09-27 13:40:37
原文地址:https://mp.weixin.qq.com/s?__biz=MzU2Njg5Nzk0NQ==&mid=2247483694&idx=1&sn=bd03afe5ab798b4732c1a3457d60c53b 本篇介绍一下如何从源码构建Elasticsearch,构建Elasticse ......
本篇介绍一下如何从源码构建elasticsearch,构建elasticsearch源码是学习和研究elasticsearch源码的基础,有助于更好的了解elasticsearch。
环境准备
环境/软件 | 版本 | 备注 |
---|---|---|
os | ubuntu 14.04 lts | |
gradle | 5.4 | |
java | 9.0.4+11 | oracle corporation 9.0.4 [openjdk 64-bit server vm 9.0.4+11] |
elasticsearch | 6.2 |
从源码构建elasticsearch需要注意下面几个问题:
1、从源码构建elasticsearch需要使用gradle,因此需要确认下是否安装了gradle,可以参考安装,安装步骤如下:
mkdir /opt/gradle unzip -d /opt/gradle ./下载/gradle-5.4-bin.zip ls /opt/gradle/gradle-5.4 #添加环境变量 vi ~/.bashrc #在 ~/.bashrc 文件下面加上这句 export path=$path:/opt/gradle/gradle-5.4/bin #使新增的环境变量即时生效 source ~/.bashrc #检查 gradle 是否安装配置成功 gradle -v
2、elasticsearch编译和运行时所要求的jdk版本是不一样的,以v6.2版本为例,runtime要求最低jdk8,compile要求最低jdk9。不同版本的elasticsearch应该如何确定所需jdk运行时和编译的版本呢?可以在elasticsearch的源码里找到,如下:
/* * elasticsearch <= v6.3 */ //代码文件位置:buildsrc/src/main/groovy/org/elasticsearch/gradle/buildplugin.groovy static final javaversion minimumruntimeversion = javaversion.version_1_8 static final javaversion minimumcompilerversion = javaversion.version_1_9 /* * elasticsearch >= v6.4 */ //代码文件位置:buildsrc/src/main/groovy/org/elasticsearch/gradle/buildplugin.groovy //这段代码对应的配置文件分别是下面这两个: //buildsrc/src/main/resources/minimumcompilerversion //buildsrc/src/main/resources/minimumruntimeversion javaversion minimumruntimeversion = javaversion.toversion( buildplugin.class.getclassloader().getresourceasstream("minimumruntimeversion").text.trim() ) javaversion minimumcompilerversion = javaversion.toversion( buildplugin.class.getclassloader().getresourceasstream("minimumcompilerversion").text.trim() )
3、在终端执行构建操作前建议把终端改为bash,不然可能会有点问题。
开始构建
具体步骤如下:
#下载源码 git clone https://github.com/elastic/elasticsearch.git #进入源码目录 cd elasticsearch #切换到一个稳定分支 git checkout 6.2 #构建源码 ./gradlew assemble
看到下面输出表示构建成功了。
build successful in 10m 15s 505 actionable tasks: 505 executed
测试
构建成功后就可以启动elasticsearch了,如下:
#在源码目录下执行 ./gradlew run
启动成功后浏览器打开127.0.0.1:9200
显示如下:
{ "name" : "node-0", "cluster_name" : "distribution_run", "cluster_uuid" : "e3qa7tikttgnp32wizsyxg", "version" : { "number" : "6.2.5", "build_hash" : "e38fe8a", "build_date" : "2019-04-25t01:27:03.655047z", "build_snapshot" : true, "lucene_version" : "7.2.1", "minimum_wire_compatibility_version" : "5.6.0", "minimum_index_compatibility_version" : "5.0.0" }, "tagline" : "you know, for search" }