前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >翻译:如何在intellij idea中调试elasticsearch源代码

翻译:如何在intellij idea中调试elasticsearch源代码

作者头像
用户1233856
发布2022-08-06 00:16:55
1.8K0
发布2022-08-06 00:16:55
举报
文章被收录于专栏:白码晚股

编者按(2020年1月6日):这是用Elasticsearch 6.6编写和测试的。由于PR#48188中的更改,这些说明将不适用于7.5版和更高版本.

如果想了解Elasticsearch的内部工作原理,源代码是最终的权威。如果源代码已经下载,那么像IntelliJ IDEA这样功能齐全的集成开发环境(IDE)对于浏览、编辑和调试它非常有用。因此,在这篇博客文章中,我介绍了(1)如何下载Elasticsearch源代码,(2)如何在IntelliJ IDEA中设置Elasticsearch项目,以及(3)如何在IntelliJ IDEA中启动Java调试器。

环境

本博客中的说明已经在Mac OSX 10.14.2、IntelliJ IDEA 2018.3(社区版)和OpenJDK 11.0.2上进行了测试。

下载Elasticsearch

从github获取Elasticsearch源代码的副本,如下所示:

代码语言:shell
复制
git clone https://github.com/elastic/elasticsearch.git

签出您要调试的 Elasticsearch 版本的分支。

代码语言:shell
复制
cd elasticsearch 
git checkout --track origin/6.6

查看分发中包含的文本文件

在 elasticsearch 目录中,有几个文本文件需要查看。特别是,CONTRIBUTING.md 包含对将 Elasticsearch 代码导入 IntelliJ IDEA 项目的过程的描述,而 TESTING.asciidoc 描述了构建和调试代码的方法。本博文的其余部分基于这些文件中的说明。

配置代码以与 IntelliJ IDEA 一起使用

Elasticsearch 使用的构建系统是 gradle,构建“Elasticsearch gradle tools”至少需要 Java 11。此外,Java 9 用于构建过程的一部分,如果未找到它,您将在构建代码时看到警告。确保您的 JAVA_HOME 和 JAVA9_HOME 环境变量设置正确。例如,我的 .bash_profile(在 OSX 上)中设置了我的 JAVA_HOME 和 JAVA9_HOME,如下所示:

代码语言:shell
复制
JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-11.0.2.jdk/Contents/Home 
export JAVA_HOME
JAVA9_HOME=/Library/Java/JavaVirtualMachines/jdk-9.0.4.jdk/Contents/Home
export JAVA9_HOME

最后,执行以下命令来配置一个 Elasticsearch 项目以在 IntelliJ IDEA 中使用。

代码语言:shell
复制
./gradlew idea

执行上述命令可能需要几分钟时间,一旦完成,您的项目就可以导入 IntelliJ IDEA。

将 Elasticsearch 导入 IntelliJ IDEA 项目

  1. 打开 IntelliJ IDEA,如果您没有打开任何其他项目,您将看到如下图所示的屏幕。单击导入项目。
  2. 选择 elasticsearch 目录并单击打开。
  1. 选择 Import project from external model -> Gradle,然后点击 Next。
  1. 将 Gradle JVM 设置为 11,如下所示。然后点击完成。
  1. 完成上述步骤后,IntelliJ IDEA 将开始构建源代码。构建完成后,IntelliJ IDEA 窗口应类似于下图。

启动 Elasticsearch 进行调试

调试 Elasticsearch 的一种方法是使用以下命令从终端以调试模式启动项目:

代码语言:shell
复制
./gradlew run --debug-jvm

上述过程可能需要几分钟才能完全启动,此时您可以通过单击 Run -> Attach to Process 从 IntelliJ IDEA 连接到该过程,如下所示:

这将允许您选择要附加到的进程,该进程应类似于以下内容:

您现在应该能够设置断点并单步执行 Elasticsearch 和 Lucene 代码!

请注意,如果您不熟悉使用 IntelliJ IDEA 进行调试,可以在 IntelliJ IDEA 文档中找到帮助。

总结

在这篇博文中,我演示了如何在 IntelliJ IDEA 中设置一个项目,该项目将允许对 Elasticsearch 和 Lucene 源代码进行交互式调试。您现在已准备好深入研究 Elasticsearch 的内部工作原理!与往常一样,如果您有任何问题,请访问我们的讨论论坛

本文系外文翻译,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系外文翻译前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 环境
  • 下载Elasticsearch
  • 查看分发中包含的文本文件
  • 配置代码以与 IntelliJ IDEA 一起使用
  • 将 Elasticsearch 导入 IntelliJ IDEA 项目
  • 启动 Elasticsearch 进行调试
  • 总结
相关产品与服务
Elasticsearch Service
腾讯云 Elasticsearch Service(ES)是云端全托管海量数据检索分析服务,拥有高性能自研内核,集成X-Pack。ES 支持通过自治索引、存算分离、集群巡检等特性轻松管理集群,也支持免运维、自动弹性、按需使用的 Serverless 模式。使用 ES 您可以高效构建信息检索、日志分析、运维监控等服务,它独特的向量检索还可助您构建基于语义、图像的AI深度应用。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档