elasticsearch 源码本地环境搭建
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 源码本地环境搭建的更多相关文章
- 渣渣菜鸡的 ElasticSearch 源码解析 —— 环境搭建
关注我 转载请务必注明原创地址为:http://www.54tianzhisheng.cn/2018/08/25/es-code01/ 软件环境 1.Intellij Idea:2018.2版本 2. ...
- 以太坊go-ethereum项目源码本地环境搭建
如果要深入了解go-ethereum项目的实现与机制,看源代码是必不可少的.今天这篇博客就简单介绍一下如何在本地搭建项目的开发环境. GO语言环境搭建 以win8为例,访问地址https://gola ...
- 分布式搜索ElasticSearch单机与服务器环境搭建
从上方插件官网中下载适合的dist包,然后解压.进入bin目录,可以看到一堆sh脚本.在bin目录下创建一个test.sh: bin=/home/csonezp/Dev/elasticsearch-j ...
- Spark源码分析环境搭建
原创文章,转载请注明: 转载自http://www.cnblogs.com/tovin/p/3868718.html 本文主要分享一下如何构建Spark源码分析环境.以前主要使用eclipse来阅读源 ...
- 【转】Linux(ubuntu14.04)上编译Android4.4源码的环境搭建及编译全过程
原文网址:http://jileniao.net/linux-android-building.html sublime text让我伤心.本来很信任sublime text的自动保存功能,之前使用一 ...
- 基于Eclipse IDE的Ardupilot飞控源码阅读环境搭建
基于Eclipse IDE的Ardupilot飞控源码阅读环境搭建 作者:Awesome 日期:2017-10-21 需准备的软件工具 Ardupilot飞控源码 PX4 toolchain JAVA ...
- Elasticsearch简单使用和环境搭建
Elasticsearch简单使用和环境搭建 1 Elasticsearch简介 Elasticsearch是一个可用于构建搜索应用的成品软件,它最早由Shay Bannon创建并于2010年2月发布 ...
- Hadoop源码阅读环境搭建(IDEA)
拿到一份Hadoop源码之后,经常关注的两件事情就是 1.怎么阅读?涉及IDEA和Eclipse工程搭建.IDEA搭建,选择源码,逐步导入即可:Eclipse可以选择后台生成工程,也可以选择IDE导入 ...
- Dubbo源码学习--环境搭建及基础准备(ServiceLoader、ExtensionLoader)
环境搭建 Github上下载Dubbo最新发布版本,楼主下载版本为2.5.7. cd到源码解压目录,maven编译,命令为: mvn clean install -Dmaven.test.skip 生 ...
随机推荐
- Linux系统安装-MacBook网卡驱动问题解决
先附上MacBook的linux安装教程 需要注意的是第7步中可能无法识别出OS X的系统,也没关系,只要格式化磁盘的时候注意选择对应磁盘即可,格式化成EXT4分区. 安装好后发现无法连接无线网络,应 ...
- IPv6 VS IPv4,谈谈升级 IPv6 的必要性
11月26日,中办.国办印发了<推进互联网协议第六版(IPv6)规模部署行动计划>,提出国内要在 5~10 年的时间形成下一代互联网自主技术体系和产业生态,建成全球最大规模的 IPv6 商 ...
- bundles.Add( )下无法绑定后缀为min.css的文件
1.问题描述: 在绑定css的时候,除了后缀名为.min.css的文件,在render.style()不显示外,其他的css都正常加载, 2.解决办法: 这个是我在调试了几遍之后发现的规律,然后解决办 ...
- 用shape画内圆外方,形成一个圆形头像
很多人都有过这样的经历,想要在自己写的程序里,上传一张随便大小形状的照片在程序里显示都是圆形照片,或者是方形,或者是三角形,但是写代码又非常麻烦,这里就有一个也可以实现一样效果的方法,那就是用 lay ...
- Python函数篇(3)-内置函数、文件处理
1.内置函数 上一篇文章中,我重点写了reduce.map.filter3个内置函数,在本篇章节中,会补充其他的一些常规内置函数,并重点写max,min函数,其他没有说明的函数,会在后面写到类和面向对 ...
- CCF-201312-4-有趣的数
问题描述 试题编号: 201312-4 试题名称: 有趣的数 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 我们把一个数称为有趣的,当且仅当: 1. 它的数字只包含0, 1, ...
- 关于使用scrapy框架编写爬虫以及Ajax动态加载问题、反爬问题解决方案
Python爬虫总结 总的来说,Python爬虫所做的事情分为两个部分,1:将网页的内容全部抓取下来,2:对抓取到的内容和进行解析,得到我们需要的信息. 目前公认比较好用的爬虫框架为Scrapy,而且 ...
- YiShop_最全微信营销涨粉技巧
在我们开始推广企业订阅号之前,我们必须思考微信营销策略,客户通过微信可以获得什么?企业通过微信可以得到什么?微分销专家建议企业微信定位为互动.服务工具,因为获取一个粉丝很难,可是失去一个粉丝,却是一件 ...
- 【NOIP2003提高组】加分二叉树
https://www.luogu.org/problem/show?pid=1040 令f(i,j)表示[i,j]的二叉树中最高的分数.枚举k为根,状转方程:f(i,j)=max{f(i,k-1)* ...
- Python之编程基础(编程语言分类)
一.编程语言简介 编程语言主要从以下几个角度进行分类,编译型和解释型.静态语言和动态语言.强类型定义语言和弱类型定义语言. 1.编译型跟解释型 编译型,其实他和汇编语言是一样的,也是有一个负责翻译的程 ...