本地编译Elasticsearch

一、准备工作

  1. 从git拉取源码

    git clone https://github.com/elastic/elasticsearch.git
    
  2. 安装对应版本的 gradlejdk,由于选择编译的Elasticsearch版本为7.7,对应的gradle版本为6.4,jdk为1.14

  3. 下载一份对应版本的Elasticsearch的windows发行版备用 https://www.elastic.co/cn/downloads/elasticsearch


二、编译流程

  1. 修改elasticsearch\gradle\wrapper\gradle-wrapper.properties文件(可选)

    distributionUrl=gradle-6.4-all.zip
    

    然后将下载的gradle-6.4-all.zip放在同级目录下,这样就不会再自动从gradle官网去下载了

  2. 配置gradle的阿里云镜像(可选)

  3. 导入到idea,等待gradle初始化

  4. 启动org.elasticsearch.bootstrap.Elasticsearch


三、错误处理

  1. the system property [es.path.conf] must be set

    run -> EditConfigurations -> VM Options

    -Des.path.home=C:\work\source\elasticsearch\home
    -Des.path.conf=C:\work\source\elasticsearch\home\config
    -Dlog4j2.disable.jmx=true
    -Djava.security.policy=C:\work\source\elasticsearch\home\config\elasticsearch.policy
    -Des.path.plugins=C:\work\source\elasticsearch\home\plugins
    

    其中的home是自定义的配置文件夹,我将其放入到es源码根目录中。需要将es对应发行版中的configmodulesplugins目录拷贝到home目录中。同时,还需要在config目录中增加一个配置文件elasticsearch.policy,其中的内容如下:

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

    home/config/elasticsearch.yml中添加node.name: node-1

  3. java.lang.NoClassDefFoundError: org/elasticsearch/plugins/ExtendedPluginsClassLoader

    点击Edit Configurations,给Include dependencies with Provided scope打上勾即可解决

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值