第 26 章 - 源码篇 - 构建你的 Elasticsearch 8 本地调试环境:步骤与技巧

190 阅读1分钟

如果你的开发工具是 IDEA,那么在本地搭建 Elasticsearch Debug 环境会非常简单。废话不多说,我们直接开始。

  1. 下载 elasticsearch 源码[1] 源码
  2. IDEA 选择 File->Open ,选择 build.gradle,idea 会自动下载项目所需要的 jdk、gradle,当然前提是你能科学上网
  3. 项目配置
  4. 配置你的 gradle user home
    Gradle user home 该目录存储了与 Gradle 相关的用户级配置和缓存文件。gradle 下载的内容会被放到 $gradle_user_homecache->modules-2->files-2.1。 我们可以在该目录下创建配置文件,对 gradle 进行配置。
  5. 配置 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 文件。这里用不到该文件,不过多介绍。

  1. 如果你的 gradle 下载好了、或者 jdk 下载好了,配置完后,可以重新刷新下整个项目

做完以上的工作,我们的配置基本都配置完毕了。接下来就是 Debug Elasticsearch

  1. 启动 Debug Elasticsearch

  2. 打断点
    在这个类上打个断点 org.elasticsearch.rest.RestController#dispatchRequest(org.elasticsearch.rest.RestRequest, org.elasticsearch.rest.RestChannel, org.elasticsearch.common.util.concurrent.ThreadContext)
  3. 启动 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…