最近想从代码层面学习下 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
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 中添加
再次执行 .\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