Idea启动或者debug elasticsearch7 源码

构建zip包

首先构建出zip包,如下:

./gradlew assemble

注意:es7需要本地安装docker、vagrant,并且JDK版本为11.

完成之后进入distribution/archives/zip/build/distributions/目录,我本地为/Users/jiamingli/scm/elasticsearch/distribution/archives/zip/build/distributions/,解压zip包。

修改elasticsearch.yml

修改Users/jiamingli/scm/elasticsearch/distribution/archives/zip/build/distributions/elasticsearch-7.0.0-SNAPSHOT/config/elasticsearch.yml,添加node.name: node-1

修改server/build.gradle

修改server/build.gradle,修改compileOnly project(':libs:plugin-classloader')
为compile project(':libs:plugin-classloader')

创建es.policy

在/Users/jiamingli/scm/elasticsearch/distribution/archives/zip/build/distributions/elasticsearch-7.0.0-SNAPSHOT/config目录下创建es.policy,输入如下内容:

grant {
  permission javax.management.MBeanTruxtPermission 
"register"
;
  permission javax.management.MBeanServerPermission 
"createMBeanServer"
;
  permission java.lang.RuntimePermission 
"createClassLoader"
;
};

创建idea运行配置

如图

Main Class为org.elasticsearch.bootstrap.Elasticsearch,

VM参数为:

-Xms256m -Xmx256m -Des.path.home=/Users/jiamingli/scm/elasticsearch/distribution/archives/zip/build/distributions/elasticsearch-7.0.0-SNAPSHOT -Des.path.conf=/Users/jiamingli/scm/elasticsearch/distribution/archives/zip/build/distributions/elasticsearch-7.0.0-SNAPSHOT/config  -Dlog4j2.disable.jmx=true -Djava.security.policy=/Users/jiamingli/scm/elasticsearch/distribution/archives/zip/build/distributions/elasticsearch-7.0.0-SNAPSHOT/config/es.policy

Use classpaht of module 为org.elasticsearch.bootstrap.Elasticsearch所在的module,此处为elasticsearch.server.main

run或者debug

输出如下:

results matching ""

    No results matching ""