1. 程式人生 > 其它 >windows下編譯除錯 Elasticsearch 8.7.0 原始碼

windows下編譯除錯 Elasticsearch 8.7.0 原始碼

最近想從程式碼層面學習下 ElasticSearch,於是下載程式碼並匯入到 idea 中,開始一頓操作,gradle 各種倒騰,還是沒法直接從程式碼執行程序,最後選擇了一種不那麼直接的 debug 方法,遠端除錯。

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