#源码下载
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模式运行
gradle run --debug-jvm
####IDEA 设置远程debug模式
具体配置方法参考[Elasticsearch] setup Elasticsearch in intellij idea