Elasticsearch源码导入IDEA

Stella981
• 阅读 746
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/yan3013216087/article/details/91192336

前言:gradle不同版本之间存在不兼容的情况,使用其他版本可能会报错。
编译项目时,网络问题可能会导致依赖下载失败,建议用自己的网,不要用公司有限制的网。

1.环境与准备工作

  • windows 10
  • IDEA 2018.2.5
  • JDK 1.8.0\_162
  • Gradle 3.5

2.安装Gradle 3.5

参考:https://gradle.org/install/
gradle是免安装的,下载安装包并解压到本地安装目录,并配置环境变量即安装完成。
在系统变量 Path 下添加 \\安装目录\\gradle-3.5\\bin,例如:
Elasticsearch源码导入IDEA
Elasticsearch源码导入IDEA
验证安装结果:
Elasticsearch源码导入IDEA
配置远程阿里云仓库
在gradle目录下的init.d目录中创建名为init.gradle文件,内容如下:

allprojects{ repositories { def REPOSITORY\_URL = 'http://maven.aliyun.com/nexus/content/groups/public/' all { ArtifactRepository repo -> if(repo instanceof MavenArtifactRepository){ def url = repo.url.toString() if (url.startsWith('https://repo1.maven.org/maven2') || url.startsWith('https://jcenter.bintray.com/')) { project.logger.lifecycle "Repository ${repo.url} replaced by $REPOSITORY\_URL." remove repo } } } maven { url REPOSITORY\_URL } } }

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

3.下载源代码

下载链接:https://github.com/elastic/elasticsearch/tree/v5.3.2
Elasticsearch源码导入IDEA

4.编译项目,打包

进入解压后的源码目录,执行编译命令:

gradle assemble 
  • 1

编译过程中会下载依赖文件,编译完成后系统打印“BUILD SUCCESSFUL”代表编译成功。完整的打包文件位于
./distribution目录,包含tar、zip等多种格式的包,例如:
Elasticsearch源码导入IDEA

5.将工程导入IDEA

1)进入elasticsearch源码目录,执行 gradle idea, 生成IDEA的项目文件,正常完成显示“BUILD SUCCSEEFUL”.

2)创建用于ES读取配置的目录
创建一个目录,此处命名为eshome,用于ES从中加载模块、读取配置、写入数据和日志,可以将gradle编译打包的软件包解压,然后将config、modules、plugins目录拷贝到eshome文件夹中,软件包位于distribution/zip/build/distributions下:

(1)在ES源码解压后的目录下,进入gradle打包后的软件包所在目录:distribution/zip/build/distributions
Elasticsearch源码导入IDEA
(2)解压zip文件,并进入解压后的目录,将config、modules、plugins目录拷贝到eshome目录:

Elasticsearch源码导入IDEA
3)选择import project,将源码加压后的文件目录导入,选择gradle
Elasticsearch源码导入IDEA
配置JVM和gradle home
Elasticsearch源码导入IDEA
Elasticsearch源码导入IDEA
导入后:
Elasticsearch源码导入IDEA
4)IDEA菜单中选择Run->Edit Configurations,点击“+”添加Application,配置下列信息:
Elasticsearch源码导入IDEA
其中vm options配置如下:

-Des.path.home=/Users/shanmenglu/Documents/eshome -Des.path.conf=/Users/shanmenglu/Documents/eshome/config -Xms1g -Xmx1g -Dlog4j2.disable.jmx=true -Djava.security.policy=/Users/shanmenglu/Documents/eshome/config/elasticsearch.policy 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

Main Class配置启动类,该类在core目录下src/java/org/elasticsearch/bootstrap/Elasticsearch.java

5.运行main方法

点击Run运行项目,控制台输出下列日志:
Elasticsearch源码导入IDEA
在浏览器地址栏输入http://localhost:9200,显示如下内容,说明ElasticSearch本地成功运行
Elasticsearch源码导入IDEA
参考:
《ElasticSearch源码解析与优化实战》
https://blog.csdn.net/lom9357bye/article/details/86662367
https://blog.csdn.net/weixin\_33912445/article/details/87292225
https://www.w3cschool.cn/gradle/9b5m1htc.html
https://blog.csdn.net/wqc19920906/article/details/82353541

                                </div>
            <link href="https://csdnimg.cn/release/phoenix/mdeditor/markdown_views-e9f16cbbc2.css" rel="stylesheet">
                </div>
点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
待兔 待兔
4个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Wesley13 Wesley13
3年前
java反射, 不看你可别后悔
<divid"content\_views"class"markdown\_views"<!flowchart箭头图标勿删<svgxmlns"http://www.w3.org/2000/svg"style"display:none;"<pathstrokelinecap"round"d"M5,00,
Stella981 Stella981
3年前
AndroidStudio封装SDK的那些事
<divclass"markdown\_views"<!flowchart箭头图标勿删<svgxmlns"http://www.w3.org/2000/svg"style"display:none;"<pathstrokelinecap"round"d"M5,00,2.55,5z"id"raphael
Stella981 Stella981
3年前
Native memory allocation (mmap) failed to map xxx bytes for committing reserved memory
<divid"content\_views"class"markdown\_views"<!flowchart箭头图标勿删<svgxmlns"http://www.w3.org/2000/svg"style"display:none;"<pathstrokelinecap"round"d"M5,00,
Stella981 Stella981
3年前
Spring Boot 2下使用Feign找不到@EnableFeignClients的解决办法
<divid"content\_views"class"markdown\_views"<!flowchart箭头图标勿删<svgxmlns"http://www.w3.org/2000/svg"style"display:none;"<pathstrokelinecap"round"d"M5,00,2
Wesley13 Wesley13
3年前
Java8中的LocalDateTime工具类
<divid"content\_views"class"markdown\_views"<!flowchart箭头图标勿删<svgxmlns"http://www.w3.org/2000/svg"style"display:none;"<pathstrokelinecap"round"d"M5,00,
Stella981 Stella981
3年前
Android C、C++与java端3DES互通
<divid"article\_content"class"article\_contentclearfix"<divclass"articlecopyright"<spanclass"creativecommons"<arel"license"href"http://creativecommons.org/licen
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
10个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这