赞
踩
git clone https://github.com/elastic/elasticsearch.git
这里我选择的是7.6版本的源码,需要研究其他版本可自行选择
git checkout 7.6
JDK:可通过查看源码中的 CONTRIBUTING.md 文件得知所需要的gradle和Java版本,这里我们使用的是7.6版本的,所以Java使用JDK13
Contributing to the Elasticsearch codebase
Repository: https://github.com/elastic/elasticsearch
JDK 13 is required to build Elasticsearch. You must have a JDK 13 installation with the environment variable JAVA_HOME referencing the path to Java home for your JDK 13 installation. By default, tests use the same runtime as JAVA_HOME. However, since Elasticsearch supports JDK 8, the build supports compiling with JDK 13 and testing on a JDK 8 runtime; to do this, set RUNTIME_JAVA_HOME pointing to the Java home of a JDK 8 installation. Note that this mechanism can be used to test against other JDKs as well, this is not only limited to JDK 8.
gradle:elasticsearch(以下简称ES)使用gradle构建的,我们只需要配置IDEA默认的gradle环境: /Users/kyrie/.gradle即可,会自动帮我们下载对应的gradle版本包
Java环境和gradle环境准备好后,直接点击Reload All Gradle Projects即可开始下载所需的依赖包,过程大概持续10分钟左右,即可完成依赖下载
构建对应环境的发布包:在gradle中找到distribution/arvhives/no-jdk-darwin-tar/build目录下找到assemble命令,执行该命令构建环境发布包,构造完成后,即可得到:/xxx/Elasticsearch/elasticsearch/distribution/archives/no-jdk-darwin-tar/Tasks/build/distributions/elasticsearch-7.6.3-SNAPSHOT.tar.gz包,解压该包,供后续启动时使用
首先找到类 org.elasticsearch.bootstrap.Elasticsearch,ES启动的入口在该类的main中,由于ES启动需要设置一些配置文件和环境信息,我们直接在main方法中添加以下配置属性:
// RD 添加项目启动参数
StringesHome="/Users/kyrie/Documents/doc/private/Elasticsearch/elasticsearch/distribution/archives/no-jdk-darwin-tar/build/distributions/elasticsearch-7.6.3-SNAPSHOT";
System.setProperty("es.path.home", esHome); // 设置 Elasticsearch 的【根】目录
System.setProperty("es.path.conf", esHome+"/config"); // 设置 Elasticsearch 的【配置】目录
System.setProperty("log4j2.disable.jmx", "true"); // 禁用 log4j2 的 JMX 监控,避免报错
System.setProperty("java.security.policy", esHome+"/config/java.policy"); // 设置 Java 的安全策略
在esHome/config目录下新建java.policy文件,设置Java安全策略,内容如下:
grant {
permission java.security.AllPermission;
};
同时找到/xxx/Elasticsearch/elasticsearch/server/src/main/resources/org/elasticsearch/bootstrap/security.policy文件,注释掉其中所有codebase相关的配置
elasticsearch.yml配置设置:
#节点名称
node.name: node-1
#数据存储路径
path.data: /Users/kyrie/Documents/doc/private/Elasticsearch/elasticsearch/data
#日志存储路径
path.logs: /Users/kyrie/Documents/doc/private/Elasticsearch/elasticsearch/logs
#禁用security
xpack.ml.enabled: false
xpack.security.enabled: false # 禁用 X-Pack 提供的安全认证功能,方便测试
直接右键执行org.elasticsearch.bootstrap.Elasticsearch#main(java.lang.String[])方法启动ES节点服务
浏览器输入http://localhost:9200/访问服务是否正常启动,出现以下信息表示启动成功,至此,ES源码环境搭建已经完成!
也可以通过安装chrome插件Elasticsearch Head来查看ES信息
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。