美文网首页
Elasticsearch7.5 源码编译

Elasticsearch7.5 源码编译

作者: 程序猿小左 | 来源:发表于2020-05-11 15:35 被阅读0次

一、环境准备

1.Elasticsearch7.5 源码,github 下载或者网盘下载 提取码: faw8
2.gradle5.6.2+ 版本,gradle 官网下载
3.jdk12+,openjdk 下载,选择 jdk12
4.Intellij Idea版本: 2020.1
5.系统:MacOS 10.14.6

二、编译构建

配置好 java 和 gradle 环境之后就可以开始编译编码了
1.进行 elasticsearch 源码跟路径,用 git 切换到 7.5 分支,项目结构如下图所示



2.将其配置成为 idea 项目,执行如下命令

./gradlew idea

配置成功后,会提示你 successful
3.用 idea 打开 elasticsearch 源码,如下图所示,点击右边的按钮进行编译



4.如果编译或者配置的过程中出错,很有可能是由于网络原因导致,可使用代理或者配置阿里云仓库进行解决
打开 buildSrc 模块下的 build.gradle,将里面的 jcenter 替换为阿里云仓库,如果还是失败,可尝试多试几次解决

repositories {
 maven {
            url 'http://maven.aliyun.com/nexus/content/groups/public/'
        }
}

三、源码启动

1.构建 elasticsearch 执行包文件,使用如下命令

./gradlew assemble 

生成后的包位于 distribution 模块下的子模块的 archives 下,如图所示

选择你对应系统的包,mac 系统对应的包位于 darwin-tar 下的 build/distributions 目录下
2.在 elasticsech 源代码创建一个目录,这里就叫 product,将刚才打包生成的 elasticsearch-7.5.3-SNAPSHOT-darwin-x86_64.tar.gz 解压到 product 目录下
3.配置源码环境
找到 org.elasticsearch.bootstrap.Elasticsearch 这个类,配置 jvm options 如下图所示

-Des.path.home=/Users/xx/project/elastic/elasticsearch/product 你刚才配置 es 的路径
-Des.path.conf=/Users/xx/project/elastic/elasticsearch/product/config 你刚才配置 es 的路径的配置文件路径
-Dlog4j2.disable.jmx=true

修改 server 模块下的 build.gradle 文件,将 compileOnly project(':libs:elasticsearch-plugin-classloader') 替换为 compile project(':libs:elasticsearch-plugin-classloader')
4.启动源码,点击 debbug,就可以启动了


浏览器上输入 localhost:9200 得到如下结果说明成功了
{
  "name" : "elastic-node",
  "cluster_name" : "elastic-cluster",
  "cluster_uuid" : "0n5spb4wQXKkFqEgYufzgw",
  "version" : {
    "number" : "7.5.3",
    "build_flavor" : "unknown",
    "build_type" : "unknown",
    "build_hash" : "unknown",
    "build_date" : "unknown",
    "build_snapshot" : true,
    "lucene_version" : "8.3.0",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}

四、远程 debug 调试

除了本地源码启动外,elasticsearch 也可以支持远程 debug
1.在源代码根路径下执行如下命令

./gradlew run --debug-jvm

2.idea 开启 remote debug 模式

这里的 Debugger model 要选择 Listen to remote JVM 并且要勾选 Auto restart
注意 这里 idea 启动需要早于第 1 步那个命令的,点击 debug,就可以愉快的 debug 源码了


而日志都是在命令行打印

相关文章

网友评论

      本文标题:Elasticsearch7.5 源码编译

      本文链接:https://www.haomeiwen.com/subject/hpvunhtx.html