源碼下載
git clone https://github.com/elastic/elasticsearch.git
切換版本
git checkout v5.6.4
用gradle 編譯
gradle 的版本是4.0.1
gradle idea
如果編譯過程中遇到因爲下載文件失敗而導致編譯失敗的情況,可參考ES5.6.4源碼編譯 親測有用。
遠程調試
本來想直接在IDEA中啓動調試的,但是遇到如下問題(哪位大神如果能幫忙解決感激不盡):
Exception in thread "main" java.lang.NoClassDefFoundError: joptsimple/OptionSpec
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:264)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:123)
Caused by: java.lang.ClassNotFoundException: joptsimple.OptionSpec
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
找不到有效的解決方案。最後用如下方案代替:
1、用gradle啓動ES
2、在IDEA中配置遠程debug
效果是一樣的。
gradle 以debug模式運行
radle run --debug-jvm
IDEA 設置遠程debug模式
具體配置方法參考[Elasticsearch] setup Elasticsearch in intellij idea