如果你的开发工具是 IDEA,那么在本地搭建 Elasticsearch Debug 环境会非常简单。废话不多说,我们直接开始。
- 下载 elasticsearch 源码[1] 源码
IDEA选择File->Open,选择build.gradle,idea 会自动下载项目所需要的 jdk、gradle,当然前提是你能科学上网- 项目配置
- 配置你的
gradle user home
Gradle user home该目录存储了与 Gradle 相关的用户级配置和缓存文件。gradle 下载的内容会被放到$gradle_user_home的cache->modules-2->files-2.1。 我们可以在该目录下创建配置文件,对 gradle 进行配置。 - 配置 grade 镜像站
在该目录下创建init.d目录,并在init.d目录下,创建init.gradle文件。 文件内容如下
allprojects {
repositories {
maven { url 'https://maven.aliyun.com/nexus/content/groups/public/' }
maven { url 'https://maven.aliyun.com/repository/public/' }
maven { url 'https://maven.aliyun.com/repository/google/' }
maven { url 'https://maven.aliyun.com/repository/jcenter/' }
maven { url 'https://maven.aliyun.com/repository/central/' }
mavenLocal()
mavenCentral()
}
}
当然,我们也可以在该目录下创建 gradle.properties 文件。这里用不到该文件,不过多介绍。
- 如果你的 gradle 下载好了、或者 jdk 下载好了,配置完后,可以重新刷新下整个项目
做完以上的工作,我们的配置基本都配置完毕了。接下来就是 Debug Elasticsearch
- 启动
Debug Elasticsearch
- 打断点
在这个类上打个断点org.elasticsearch.rest.RestController#dispatchRequest(org.elasticsearch.rest.RestRequest, org.elasticsearch.rest.RestChannel, org.elasticsearch.common.util.concurrent.ThreadContext) - 启动
Elasticsearch
在Elasticsearch项目下,执行./gradlew run --debug-jvm
如果启动报以下错误
Output for ./bin/elasticsearch-keystore:ERROR: transport error 202: connect failed: Connection refused
控制台会输出以下内容
这个时候,我们需要重新设置 Elasticsearch Debug 的端口号
参考资料 [1]
elasticsearch 源码: github.com/elastic/ela…