elasticsearch6.0.0 源码本地环境搭建步骤如下:

  • 1、资源准备

ElasicSearch版本:6.0.0: https://github.com/elastic/elasticsearch

安装jdk(jdk1.8以上,本人用的是1.8.0_131)

安装gradle(3.3以上,本人用的是4.3.1) 需要安装环境变量网上有好多,下载地址 http://services.gradle.org/distributions/

  • 2、上面资源都准备好了后 ,开始

1)配置软件包仓库源地址 (此步骤因为需要从包仓库jcenter或者apache的maven库下载依赖额所有jar,耗时长,使用国内的仓库源,节省时间)

在C:\Users\用户\.gradle下建立init.gradle文件

编辑文件内容如下:

allprojects{
  repositories {
    def REPOSITORY_URL = 'http://maven.aliyun.com/nexus/content/groups/public/'
    all { ArtifactRepository repo ->
    if(repo instanceof MavenArtifactRepository){
    def url = repo.url.toString()
    if (url.startsWith('https://repo.maven.org/maven2') || url.startsWith('https://jcenter.bintray.com/')) {
      project.logger.lifecycle "Repository ${repo.url} replaced by $REPOSITORY_URL."
      remove repo
    }
  }
}
  maven {
     url REPOSITORY_URL
   }
 }
}

2)编辑${elasticsearch源码根目录}\distribution\build.gradle文件,蓝色部分替换为如下。

buildscript {
  repositories {
    maven {
      url "http://maven.aliyun.com/nexus/content/groups/public/"
    }
  }
  dependencies {
    classpath 'com.netflix.nebula:gradle-ospackage-plugin:3.4.0'
  }
}

3)gradle 安装成功后 打开cmd控制台 进入elasticsearch源码根目录,

执行gradle idea。(idea导入源码前,必须进行此步骤,否则会报错)

4)IDEA导入工程,导入的时候需要设置gradle_home,配置为gradle的安装根目录。

勾选Offline work(否则会连到官网私服下载,会超级慢)和Use local gradle distribution。

gradle 项目导入idea碰到的问题:

导入idea时候执行gradle idea,可以把项目编译成idea项目,但后续导入idea还是报错,

提示jdk版本只能是1.8或以上,如果是这样,检查环境变量中的jdk配置是否正确

5)编译代码 在core下 的jar 编译

6)启动elasticsearch:在 core下org.elasticsearch.bootstrap.Elasticsearch 这个类 右键运行main方法

报错 启动包es.path.conf未设置

解决方法 :配置jvm参数

//这个是自己项目里面distribution 下的路径
-Des.path.home=F:\es_code\elasticsearch-6.0\distribution\src\main\resources
-Des.path.conf=F:\es_code\elasticsearch-6.0\distribution\src\main\resources\config
// 继续启动 之后报错
2017-12-06 19:18:42,999 main ERROR Could not register mbeans java.security.AccessControlException: access denied ("javax.management.MBeanTrustPermission" "register")

解决办法

//在里面加上
-Dlog4j2.disable.jmx=true

报错 Unsupported transport.type

解决办法:把相同版本的es二进制安装包中modules目录(\distribution\src\main\resources\modules目录内容拷过来)下内容拷贝过来。

报错 stirng index out of range -1

跟踪源码,发现如下原因:在编译的时候,编译打包版本信息不一致造成的,这样index版本号就出错了。

解决方法  修改 core 下面的 org.elasticsearch.Build.java 74行,

// isSnapshot = true; 

isSnapshot = false;

注:有的时候有可能下载下来的源码 打包的版本是6.1.0-snapshot 本人就碰到了这种情况下载的是6.0的源码但是在编译的 时候发现 6.1.0-snapshot 是这个版本

改完后有可能还是不行,跟踪源码发现 org.elasticsearch.Build.java

主要做验证这块是Version里面的版本信息,修改下这个里面的当前版本就行了。改成自己目前的版本信息,再次启动OK。

elasticsearch 源码本地环境搭建的更多相关文章

  1. 渣渣菜鸡的 ElasticSearch 源码解析 —— 环境搭建

    关注我 转载请务必注明原创地址为:http://www.54tianzhisheng.cn/2018/08/25/es-code01/ 软件环境 1.Intellij Idea:2018.2版本 2. ...

  2. 以太坊go-ethereum项目源码本地环境搭建

    如果要深入了解go-ethereum项目的实现与机制,看源代码是必不可少的.今天这篇博客就简单介绍一下如何在本地搭建项目的开发环境. GO语言环境搭建 以win8为例,访问地址https://gola ...

  3. 分布式搜索ElasticSearch单机与服务器环境搭建

    从上方插件官网中下载适合的dist包,然后解压.进入bin目录,可以看到一堆sh脚本.在bin目录下创建一个test.sh: bin=/home/csonezp/Dev/elasticsearch-j ...

  4. Spark源码分析环境搭建

    原创文章,转载请注明: 转载自http://www.cnblogs.com/tovin/p/3868718.html 本文主要分享一下如何构建Spark源码分析环境.以前主要使用eclipse来阅读源 ...

  5. 【转】Linux(ubuntu14.04)上编译Android4.4源码的环境搭建及编译全过程

    原文网址:http://jileniao.net/linux-android-building.html sublime text让我伤心.本来很信任sublime text的自动保存功能,之前使用一 ...

  6. 基于Eclipse IDE的Ardupilot飞控源码阅读环境搭建

    基于Eclipse IDE的Ardupilot飞控源码阅读环境搭建 作者:Awesome 日期:2017-10-21 需准备的软件工具 Ardupilot飞控源码 PX4 toolchain JAVA ...

  7. Elasticsearch简单使用和环境搭建

    Elasticsearch简单使用和环境搭建 1 Elasticsearch简介 Elasticsearch是一个可用于构建搜索应用的成品软件,它最早由Shay Bannon创建并于2010年2月发布 ...

  8. Hadoop源码阅读环境搭建(IDEA)

    拿到一份Hadoop源码之后,经常关注的两件事情就是 1.怎么阅读?涉及IDEA和Eclipse工程搭建.IDEA搭建,选择源码,逐步导入即可:Eclipse可以选择后台生成工程,也可以选择IDE导入 ...

  9. Dubbo源码学习--环境搭建及基础准备(ServiceLoader、ExtensionLoader)

    环境搭建 Github上下载Dubbo最新发布版本,楼主下载版本为2.5.7. cd到源码解压目录,maven编译,命令为: mvn clean install -Dmaven.test.skip 生 ...

随机推荐

  1. LINQ学习系列-----2.1 一个Linq语句

    Linq语句介绍 先上源码: 上述代码涵盖了Linq新特性: 代码解析: 针对本文中的几点特性,前面有文章进行阐述.

  2. 常用接口简析1---IEnumerable、IEnumerator简析

    常用接口的解析(链接) 1.IEnumerable深入解析 2.IComparable.IComparable接口解析 3.IList.IList接口解析      引言: IEnumerable和I ...

  3. dij洛谷电车

    //Gang #include<iostream> #include<cstring> #include<algorithm> #include<cstdio ...

  4. Linux压力测试软件Stress安装及使用指南

      一.Stress是什么 stress是一个linux下的压力测试工具,专门为那些想要测试自己的系统,完全高负荷和监督这些设备运行的用户. 二.安装 将stress的安装包上传并解压到linux服务 ...

  5. wkhtmltopdf

    最近要做一个html转pdf的功能,在网上找了很多内容,itext什么的,都不太满意,最后找到一个wkhtmltopdf,用起来真的很不错,还找到了一篇好文章,我就直接抄过来了,等有时间我再自己理一遍 ...

  6. 解析XML文件之使用SAM解析器

    XML是一种常见的传输数据方式,所以在开发中,我们会遇到对XML文件进行解析的时候,本篇主要介绍使用SAM解析器,对XML文件进行解析. SAX解析器的长处是显而易见的.那就是SAX并不须要将全部的文 ...

  7. python内置函数(四)

    python内部提供了非常多内建函数. 以下让我们从a-z開始学习python的内建函数 1.1 id(object) 返回对象的id(身份),返回的这个是一个整数(integer)是唯一的,在这个对 ...

  8. 【LDA】修正 GibbsLDA++-0.2 中的两个内存问题

    周末这两天在家用LDA做个小实验. 在LDA的众多实现的工具包中.GibbsLDA 是应用最广泛的.包含c++版本号.java版本号等.GibbsLDA++ 是它的C++版本号的实现.眼下最新版本号是 ...

  9. Ubuntu下搜狗拼音突然无法输入中文的解决办法

    搜狗输入法前段时间还可以正常使用,突然今天无法输入中文了.这种情况在Ubuntu中非常常见,可能的原因有3个:1.可能依赖有问题.2.配置文件出错了.3运行出错,需要重新启动一下. 因为我的这个是突然 ...

  10. 优化Webpack构建性能的几点建议

    Webpack 作为目前最流行的前端构建工具之一,在 vue/react 等 Framework 的生态圈中都占据重要地位.在开发现代 Web 应用的过程中,Webpack 和我们的开发过程和发布过程 ...