在之前学习Redis的过程中,我就是一边通过文档/视频学习,一边阅读源码。我发现两种方法可以相辅相成,互相补充。阅读文档可以帮助我们快速了解某个功能,阅读源码有助于我们更深入的理解这一功能的实现及思想。
因此,在学习 Elasticsearch 的时候我也准备采用这样的模式。所以,从今天开始,我会定期更新学习 Elasticsearch 源码的收获。在开始学习之前,需要先把环境准备好。所以今天就先分享一下准备环境的过程。
软件环境
Intellij Idea:2020.1版本
JDK 12
Gradle 5.5
下载源码
你可以在 Github 中下载 release 版本或指定 tag 的源码,地址如下。
https://github.com/elastic/elasticsearch/releases
下载好以后解压到指定目录/
tar -xzvf elasticsearch-7.3.1.tar.gz
也可以直接在命令行通过 git 下载源码
git clone git@github.com:elastic/elasticsearch.git
然后可以切换到你想要的版本
git checkout v7.3.1
导入IntelliJ IDEA
下载好源码以后,我们来将项目导入 IDEA,首先,进入到项目的根目录,执行命令
./gradlew idea
这一步是生成 IntelliJ 的项目文件,需要下载一些依赖包,下载的不顺利的同学可以选择将 gradle 源切换成国内的源。
切换 gradle 源
进入目录
cd ~/.gradle
新建一个名为 init.gradle 的目录,内容如下
allprojects {
repositories {
def ALIYUN_REPOSITORY_URL = 'https://maven.aliyun.com/repository/public'
all { ArtifactRepository repo ->
if(repo instanceof MavenArtifactRepository){
def url = repo.url.toString()
if (url.startsWith('https://repo1.maven.org/maven2')) {
project.logger.lifecycle "Repository ${repo.url} replaced by $ALIYUN_REPOSITORY_URL."
remove repo
}
}
}
maven { url ALIYUN_REPOSITORY_URL }
}
}
文件生成好之后,会有如下提示