ElasticSearch入门

elasticsearch 源码阅读第二天

2018-09-16  本文已影响23人  找事做的蒋同学

  昨天 gradle idea 命令成功构建后,  再从idea  refresh工程时又一直报 java.home没设置成java10,折腾了半天,估计就是IDEA没更新数据,实在找不到入口了=更新了, 于是我就重启了一发笔记本... 果然好了,如下图, 全是大象,好激动  🐘🐘

看了会启动代码,发现全是 JAVA8的特性语法,不懂这个还真不懂了...之前也看过,但真的忘了,特别是Function<T,R>这块,  先遇到下图

调用的是

这明明是System类的静态方法, 为什么要通过 System::getenv 变成一个Function 然后调用apply进行调用实际的这个getenv方法 ???  现在的我真的无法理解...  先标个记吧..

好了,下去买了个酸奶,路上突然有灵感,   replacePropertyPlaceholders(Function getenv)  这样的参数传进来,就是方法实现级别的抽象,现在是传 System::getenv, 在其他方法调用replacePropertyPlaceholders 就能传他要的实现了, 增加了灵活性, 感受到了面向函数编程的味道了, 函数级的抽象,以前面向对象都是类 对象级别的抽象

继续 开始运行源码    >...... 啪以下立刻报错   the system property [es.path.conf] must be set  ,问题来了,

es.path.conf 这个参数在哪配置呢  代码是system.getProperty("es.path.conf") 按理是在application,yml里。。。当然es里没有, 经过一番百度 好了,在源码工程里新建home 把可以使用的es的 config目录复制到home 然后 加上了运行时参数

然后再运行....  又来了path.home is not configured

再添加 参数 如下 

然后把在使用的es 包里的module复制到 home下 ,再运行又报错 

Caused by: java.nio.file.NoSuchFileException: /Users/elbert/Documents/GitLocal/elasticsearch-source/home/modules/x-pack/plugin-descriptor.properties

怀疑是不是版本不一致,果然官方已经6.4.0了 我的是6.3.2, 好吧再下载一个es...再复制进去module

然后又开始了。。。org.elasticsearch.bootstrap.StartupException: java.lang.IllegalArgumentException: Plugin [percolator] was built for Elasticsearch version 6.4.0 but version 7.0.0-alpha1 is running

啥 github里是7.0.0??

好的好的,我也是第一次拉源码,直接拉了master,果然不行,要拉最新的tag分支 才是最新发行的。。。 好的 晚上重新下载一次! 再编译一次! 

上一篇下一篇

猜你喜欢

热点阅读