最近想从代码层面学习下 ElasticSearch,于是下载代码并导入到 idea 中,开始一顿操作,gradle 各种倒腾,还是没法直接从代码运行进程,最后看了工程里的 TESTING.asciidoc 文档后,才知道怎么调试的。

1. 首先 git clone es 的最新代码

git clone https://github.com/elastic/elasticsearch.git

2. 使用 idea 导入工程后,直接运行预先定义好的远程调试

3. 为方便调试,去掉用户认证

文件 elasticsearch\build-tools-internal\src\main\groovy\elasticsearch.run.gradle 修改 xpack 为 false

setting 'xpack.security.enabled', 'false'

4. 执行 .\gradlew.bat run --debug-jvm

 

分割线以下是我没看到 TESTING.asciidoc 文档前的调试方法:

--------------------------------------------------------------------------------------------------------------------------------------------------

1. 首先 git clone es 的最新代码

git clone https://github.com/elastic/elasticsearch.git

2. 直接使用项目中的 gradlew.bat 打包程序

.\gradlew.bat :distribution:archives:windows-zip:assemble

3. 修改代码,并打包

在 org.elasticsearch.server.cli.ServerProcess#createProcess 中添加

jvmOptions.add("-agentlib:jdwp=transport=dt_socket,server=n,address=localhost:5007,suspend=y");

再次执行 .\gradlew.bat :distribution:archives:windows-zip:assemble

4. 在 idea 中配置 remote jvm debug,并运行远程调试

5. 本地启动 ElasticSearch

elasticsearch\distribution\archives\windows-zip\build\install\elasticsearch-8.7.0-SNAPSHOT\bin\elasticsearch.bat

6. 使用命令行创建用户 elasticsearch-users.bat useradd zhang -p zhang123 -r superuser

使用账号和密码登录 localhost:9200

7. 设置断点,访问 https://localhost:9200/_cat/health?v

 

posted on 2022-11-30 13:37  偶尔发呆  阅读(248)  评论(0编辑  收藏  举报