一、环境
1. Jdk 1.8.0_211 (配置JAVA_HOME)
下载地址: https://www.oracle.com/technetwork/java/javase/archive-139210.html
2. Gradle 4.3 (配置GRADLE_HOME)
下载地址: http://services.gradle.org/distributions/
解压,添加环境变量
3. elasticsearch-6.0
下载地址: https://github.com/elastic/elasticsearch/tree/6.0
4. idea
二、编译
cmd进入elasticsearch源码路径执行:gradle idea
进入漫长的编译过程
三、idea导入工程:
a) 启动IDEA,点击 Import Project,而后选择Elasticsearch代码目录
b) 选择Gradle导入项目
c) 选择Gradle和JVM路径
d) 等待build完成
四.构建APP
在 elasticsearch/core/src/main/java/org/elasticsearch/bootstrap 下找到Elasticsearch的启动类 Elasticsearch.java,这是Elasticsearch的启动入口。打开文件,右键 Run Elasticsearch.main(),IDEA会自动为我们创建一个Application。
ERROR
error01
构建app会报错:
a) 这是需要配置 es.path.conf 参数,需要在 https://www.elastic.co/downloads/elasticsearch 下载一个同版本号的 Elasticsearch发行版,解压到某个目录。
b) 进入解压后的 elasticsearch/config目录,新建 java.policy 文件, 内容如下:
grant {
permission java.lang.RuntimePermission "createClassLoader";
};
c) 而后修改Application的配置
d) VM options中指定如下参数,目录是上面下载的Elasticsearch发行版解压到的目录,注意勾选 Include dependencies 那个选项
-Des.path.home=D:\IDEAWork\elasticsearch-6.0\es-6.0faxingban\elasticsearch-6.0.0 -Des.path.conf=D:\IDEAWork\elasticsearch-6.0\es-6.0faxingban\elasticsearch-6.0.0\config -Djava.security.policy=D:\IDEAWork\elasticsearch-6.0\es-6.0faxingban\elasticsearch-6.0.0\config\java.policy -Dlog4j2.disable.jmx=true
error02
String index out of range: -1
a)
b)
c)
d)