Elasticsearch 源码学习1:elasticsearch v6.0 代码导入idea

  • 方法1 直接通过 idea 导入 , 在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)

Intellij Idea 运行Elasticsearch源码 v6.0.0

  • 方法2 远程调试 参考1 , 参考2 和参考3

具体步骤:

  • 环境介绍
    IntelliJ IDEA 2016.2.1 (Ultimate Edition)
    elasticsearch 源码:git clone https://github.com/elastic/elasticsearch.git
    elasticsearch 编译版:https://www.elastic.co/downloads/past-releases/elasticsearch-6-0-0
    jdk:1.8.0_181
    maven:v3.3.8 http://mirrors.shu.edu.cn/apache/maven/maven-3/
    gradle:v4.3 https://services.gradle.org/distributions/

  • 编译

    1. elasticsearch源码根目录运行命令:git checkout -b v6.0 v6.0.0
    2. 开始编译 gradle idea.(在Elasticsearch 根目录下执行,有的时候会出现GradleVersion 找不到,可以找到相关的部分注释掉)
  • 配置参数
    1.拷贝需要的模块
    将对应编译版的config modules plugins目录拷贝到v6.0源码的core目录下,包结构如下图所示
    Elasticsearch 源码学习1:elasticsearch v6.0 代码导入idea_第1张图片

  • Gradle 以debug 模式运行
    gradle run --debug-jvm
    Elasticsearch 源码学习1:elasticsearch v6.0 代码导入idea_第2张图片

  • IDEA 设置远程debug模式
    Elasticsearch 源码学习1:elasticsearch v6.0 代码导入idea_第3张图片

  • 设置断点 在 OsInfo.java, 访问 http://localhost:9200/_nodes 可进行调试。

  • https://blog.csdn.net/wwwdc1012/article/details/81978966 可参考

你可能感兴趣的:(Elasticsearch学习)