MacOS 构建ElasticSearch源码全过程

本文详细记录了在MacOS系统中从下载到构建Elasticsearch 6.1.2源码的全程,包括遇到的Java版本和Gradle版本问题,以及如何解决这些问题。通过下载相应版本的Java和Gradle,设置环境变量,最终成功构建并导入IDEA进行源码分析。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近在研读《Elasticsearch源码解析与优化实战》,研究下elasticsearch(以下简称ES)各模块的源码,书中的版本是6.1.2

虽然在github可以直接clone源码,但为了获取最完整的体验,决定跟着书中的方法从构建开始

1. 访问https://github.com/elastic/elasticsearch/releases,选择相应的版本下载,我选择的是tar.gz格式

2. 下载完成后,解压缩,然后进入相应的目录, cd elasticsearch-6.1.2(ES全部版本号其实由4位数字组成,主版本.次版本.修正版本.构建版本)

3. 按照书中写到的,执行 ./gradlew assemble -Dbuild.snapshot=false  (ES最早是由Maven构建的,后来改成了Gradle)

4. 这一步准备跳坑,构建时报错如下:

分析原因可能是java版本过低,(有一篇文章说实际上在当前写作时间Java8运行ES足够了,但是构建当前写作时间的最新版本ES需要至少Java10版本)

5. 转到Oracle官网下载Java12,https://www.oracle.com/technetwork/java/javase/downloads/jdk12-downloads-5295953.html(这一步使用brew cask install java也可以),选择的是dam格式,下载完毕后,双击安装

6. 继续跳坑,构建是报错如下:

分析原因可能是是Java12与本机安装的Gradle版本不兼容,需要升级Gradle至5.3.1

7. 转到Gradle官网https://gradle.org/releases/ 下载Gradle,zip格式

8. 配置Gradle的环境变量,这一步需要注意Gradle的版本变化可能带来的相应影响

9. 接着跳坑。。尽管经历了以上N个步骤仍然build失败。。。(报2个异常)

10. 卸载Gradle5.3.1和Java12,并在.bash_profile中配置Java环境变量 <== 重点!!!;再次执行./gradlew assemble -Dbuild.snapshot=false 命令。终于Build成功!(High Five击掌~)

11. 在相同目录,执行gradle idea,为在IDEA中导入项目做准备;如下:成功

12. 在IDEA Welcome界面 设置Project Structure

13. 设置完成后,回到Welcome界面,选择Import Project,选择ES对应的目录,点击Open;在下一个界面选择Gradle

14. 在下一个界面确认工程名称Gradle和Java的版本

15. 点击Finsh,完成导入,进入IDEA

16. Gradle守护进程开始自动同步,如下:

看到了此ES版本使用的是Lucene7.1.0 (当前写作时间最新版是8.0.0)。第一次看Lucene源码还是6.0.0的时候,怀念。。

17. 历时6分半左右,同步完成~  准备开启源码旅程!

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值