欢迎光临
我们一直在努力

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 编译

elasticsearch源码本地环境搭建

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

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

elasticsearch源码本地环境搭建

解决方法 :配置jvm参数

 elasticsearch源码本地环境搭建

//这个是自己项目里面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")

解决办法

elasticsearch源码本地环境搭建

//在里面加上  -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

elasticsearch源码本地环境搭建

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

 

  • 海报
海报图正在生成中...
赞(0) 打赏
声明:
1、本博客不从事任何主机及服务器租赁业务,不参与任何交易,也绝非中介。博客内容仅记录博主个人感兴趣的服务器测评结果及一些服务器相关的优惠活动,信息均摘自网络或来自服务商主动提供;所以对本博客提及的内容不作直接、间接、法定、约定的保证,博客内容也不具备任何参考价值及引导作用,访问者需自行甄别。
2、访问本博客请务必遵守有关互联网的相关法律、规定与规则;不能利用本博客所提及的内容从事任何违法、违规操作;否则造成的一切后果由访问者自行承担。
3、未成年人及不能独立承担法律责任的个人及群体请勿访问本博客。
4、一旦您访问本博客,即表示您已经知晓并接受了以上声明通告。
文章名称:《elasticsearch源码本地环境搭建》
文章链接:https://www.456zj.com/38335.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址