一、環境說明
windows編譯ElasticSearch太頭疼了,推薦MacOS或Linux
操作系統:Ubuntu 19.10
IDE:IDEA 20193.4(Community Edition)
JDK:12.0.2
ElasticSearch:6.8.0
Gradle:5.2.1
二、獲取源碼
git clone https://github.com/elastic/elasticsearch.git
cd elasticsearch
#拆分出一個版本用於調試
git checkout -b debug_v6.8.0
#切換至6.8.0版本
git checkout v6.8.0
推薦:
#網絡太慢的話,可以直接下載v6.8.0代碼
https://github.com/elastic/elasticsearch/archive/v6.8.0.zip
三、編譯
環境准備
- 系統環境准備
# export GRADLE_HOME=/opt/gradle-4.6
export GRADLE_HOME=/opt/gradle-5.2.1
export PATH=$GRADLE_HOME/bin:$PATH
# export JAVA_HOME=/usr/java/jdk1.8.0_191
# export JAVA_HOME=/usr/java/jdk-11.0.6
export JAVA_HOME=/usr/java/jdk-12.0.2
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
export JRE_HOME=$JAVA_HOME/jre
- gradle准備
復制一份gradle
cp gradle-5.2.1-bin.zip ~./elasticsearch-6.8.0/gradle/wrapper/
- 在當前賬戶目錄下的.gradle/下添加名為init.gradle的配置文件
allprojects {
repositories {
maven {
url "https://maven.aliyun.com/nexus/content/groups/public"
}
}
}
- 修改配置文件中的本地gradle和數字簽名
vim elasticsearch-6.8.0/gradle/wrapper/gradle-wrapper.properties
distributionUrl=gradle-5.2.1-bin.zip
distributionSha256Sum=xxx
簽名的內容
sha256sum gradle-5.2.1-bin.zip
2、編譯
- 修改權限
sudo chmod 777 -R elasticsearch-6.8.0
- 編譯
gradle idea
- 編譯成功
BUILD SUCCESSFUL in 8m 11s
347 actionable tasks: 347 executed
四、項目導入
IDEA導入es項目Import Project
選擇gradle
等IDEA構建完成
五、遠程調試
- 在遠程的ES集群中增加配置(增加調試端口)
在運行ES實例的節點上配置config/jvm.options
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=2222
創建遠程配置
設置遠程參數(端口選擇之前的配置端口)
點擊debug
put一個索引
幾乎ES所有操作都會通過rest api進行操作只要debug在RestController攔截即可
本方法可以調試已啟動節點的運行邏輯,無法debug節點啟動流程