前言: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,例如:
验证安装结果:
配置远程阿里云仓库
在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
4.编译项目,打包
进入解压后的源码目录,执行编译命令:
gradle assemble
- 1
编译过程中会下载依赖文件,编译完成后系统打印“BUILD SUCCESSFUL”代表编译成功。完整的打包文件位于
./distribution目录,包含tar、zip等多种格式的包,例如:
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
(2)解压zip文件,并进入解压后的目录,将config、modules、plugins目录拷贝到eshome目录:
3)选择import project,将源码加压后的文件目录导入,选择gradle
配置JVM和gradle home
导入后:
4)IDEA菜单中选择Run->Edit Configurations,点击“+”添加Application,配置下列信息:
其中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运行项目,控制台输出下列日志:
在浏览器地址栏输入http://localhost:9200,显示如下内容,说明ElasticSearch本地成功运行
参考:
《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>