Eclipse导入Elasticsearch源码的步骤,

基于Elasticsearch 6.2.2的源码版本。

1.安装JDK1.9

Elasticsearch 6.2.2需要JDK1.9编译,否则后面步骤会报错。

Java SE Downloads 地址:
http://www.oracle.com/technetwork/java/javase/downloads/index.html

2.下载Elasticsearch源码,并且切换到6.2.2分支

Elasticsearch github源码托管地址:
https://github.com/elastic/elasticsearch.git

3.下载gradle的安装包

查看elasticsearch\gradle\wrapper\gradle-wrapper.properties发现如下配置:

distributionUrl=https://services.gradle.org/distributions/gradle-4.5-all.zip

Elasticsearch 6.2.2需要安装gradle-4.5,官方下载地址:
https://services.gradle.org/distributions/gradle-4.5-all.zip

注意如果在国内无法下载,则需要自己挂代理,或者百度搜索从其他渠道下载gradle-4.5-all.zip。

4.拷贝文件

将下载的gradle-4.5-all.zip包放到elasticsearch\gradle\wrapper目录下,

确保和elasticsearch\gradle\wrapper\gradle-wrapper.properties在同级目录,

然后修改elasticsearch\gradle\wrapper\gradle-wrapper.properties配置如下:

distributionUrl=gradle-4.5-all.zip

5.修改源码Maven仓库地址

由于国内无法下载国外仓库的jar包,需要替换Maven地址,设置为本地或者国内可用的Maven仓库。

elasticsearch\benchmarks\build.gradle

elasticsearch\client\benchmark\build.gradle

elasticsearch\distribution\build.gradle

elasticsearch\test\logger-usage\build.gradle

修改源码中上面4个build.gradle文件里面的repositories-maven-url的值,

配置为可用的仓库地址,修改示例如下:

buildscript {

repositories {

maven {

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

}

}

dependencies {

classpath 'com.github.jengelman.gradle.plugins:shadow:2.0.2'

}

}

其中http://maven.aliyun.com/nexus/content/groups/public/是阿里云的Maven仓库。

6.修改全局Maven仓库地址

在USER_HOME/.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

}

}

}

其中USER_HOME/.gradle/是自己的gradle安装目录,示例值:C:\Users\Administrator.gradle,

如果没有.gradle目录,可用自己创建,或者先执行第7步,等gradle安装后再回来修改。

上面脚本把url匹配到的仓库都替换成了阿里云的仓库,

如果有未匹配到的导致编译失败,可用自己仿照着添加匹配条件。

7.gradle编译源码

windows运行cmd,进入DOS命令行,

然后切换到elasticsearch源码的根目录,

执行如下命令,把elasticsearch编译为eclipse工程:

gradlew eclipse

编译失败则按照错误信息解决问题,可用使用如下命令帮助定位问题:

gradlew eclipse -info

gradlew eclipse -debug

一般是Maven仓库地址不可用导致jar包无法下载,从而编译失败,

此时请参考步骤5和6修改相关的仓库地址。

编译成功后打印日志:

BUILD SUCCESSFUL in 8m 30s

8.eclipse导入elasticsearch工程

依次点击:

File: Import: Existing Projects into Workspace,

注意选中Search for nested projects,否则无法看到所有工程,

然后把出现的工程导入eclipse即可。

问题解决:

1.gradle内存不够,进程无法启动问题:

修改gradle.properties这个文件,在其中配置合适的JVM内存:

org.gradle.jvmargs=-Xmx512m

2.eclipse导入elasticsearch工程,部分工程不存在:

因为存在部分依赖包下载失败,需要重新下载:

gradlew eclipse

反复执行上面的命令,直到所有的jar包下载成功,

反复在eclipse中refresh,clean对应的工程。

必要时删除USER_HOME.gradle\caches目录下相应jar包文件目录,

重复执行gradlew eclipse下载对应的jar包。

Eclipse导入Elasticsearch源码的更多相关文章

  1. Eclipse导入Hadoop源码项目及编写Hadoop程序

    一 Eclipse导入Hadoop源码项目 基本步骤: 1)在Eclipse新建一个java项目[hadoop-1.2.1] 2)将Hadoop压缩包解压目录src下的core,hdfs,mapred ...

  2. eclipse导入Java源码

    eclipse导入Java源码 下载源码包(一般jdk都自带了, 我的没有) src.zip eclipse -> window -> preferences -> JAVA -&g ...

  3. Hadoop1.x目录结构及Eclipse导入Hadoop源码项目

    这是解压hadoop后,hadoop-1.2.1目录 各目录结构及说明: Eclipse导入Hadoop源码项目: 注意:如果没有ant的包可以去网上下,不是hadoop里面的. 然后如果通过以上还报 ...

  4. eclipse导入tomcat源码

    我的开发环境:windows7  64位 一.官网下载tomcat源码.在此奉上一站地址:http://archive.apache.org/dist/tomcat/: 二.编译源码生成.jar文件: ...

  5. Eclipse导入Zookeeper源码Version2017.11.3

    将Zookeeper源码导入Eclipse, Zookeeper源码需要使用ant构建后才能导入Eclipse, 和Solr的源码一样也是使用ant构建的, 大部分可以参考Eclipse导入Solr源 ...

  6. spring源码学习(一):eclipse导入spring源码

    前言 对于一门技术,我们最先是了解它(what),然后再熟练的使用它(how)以及何时用它(when),最后肯定要看透它(why).spring作为Java开发人员可以说是最熟悉不过的了,基本每个Ja ...

  7. Eclipse导入Solr源码Version5.5.3

    将Solr的5.5.3版本源码导入Eclipse, Solr源码需要使用ant构建后才能导入Eclipse. 1.JDK安装 Solr要求jdk1.7+: 请参考Windows下安装配置jdk 2.A ...

  8. Eclipse导入hadoop源码

    在windows中,使用Eclipse阅读hadoop源码,首先到apache官网下载tar.gz的hadoop源码压缩文件,解压. 方法1:(hadoop技术内幕推荐) 打开Eclipse,新建ja ...

  9. Eclipse导入Tomcat源码(转)

    想要研究下Tomcat的体系结构或者源码,最好将Tomcat的源码导入到ide中,编写实例进行代码跟踪(debug). 这里参考了网上一些资料,将自己操作过程记个流水账. 准备: 1.Tomcat源码 ...

随机推荐

  1. Oracle decode和case的区别

    case在SQL中有两种写法,先建立一个表create table salgrade(grade int, sal int);insert into salgrade values(1,1000);i ...

  2. Linux系统分区及挂载点

    一.关于Linux的分区情况 虽然硬盘分区表中最多能存储四个分区,但我们实际使用时一般只分为两个分区,一个是主分区(Primary Partion)一个是扩展分区(extended partition ...

  3. OSGI 生命周期

    1 生命周期管理 对于非模块化应用,生命周期将应用作为一个整体来操作: 而对于模块化应用,则可以以细粒度的方式来管理应用的某一个独立部分. OSGi生命周期管理 OSGi生命周期层有两种不同的作用: ...

  4. Linux:while read line与for循环的区别

    while read line:是一次性将文件信息读入并赋值给变量line , while中使用重定向机制,文件中的所有信息都被读入并重定向给了整个while 语句中的line 变量. for:是每次 ...

  5. MySQL安装详细教程(数据库免安装版)

    MySQL安装详细教程(数据库免安装版)mysql-5.7.33-winx64.zip 一.软件下载 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产 ...

  6. Unity——WegGL打包问题

    Rendering设置 Gamma和Linear颜色空间,两者有色差,Gamma有个2.25左右的修正值: WebGL2.0可用的情况,只支持Deferred Render延迟渲染,且只支持Linea ...

  7. 访问Github速度很慢以及解决方法(系统通用)

    原因分析1,CDN,Content Distribute Network,可以直译成内容分发网络,CDN解决的是如何将数据快速可靠从源站传递到用户的问题.用户获取数据时,不需要直接从源站获取,通过CD ...

  8. 可落地的DDD代码实践

    目录 前言 一.从六边形架构谈起 二.依赖倒置 三.DDD 代码分层 3.1 用户接口层 3.2 应用层 3.2 1 Response vs Exception 3.2.2 CQE vs DTO 3. ...

  9. opencv学习(四)——轨迹栏作为调色板

    轨迹栏作为调色板 在这里,我们将创建一个简单的应用程序,以显示指定的颜色.有一个显示颜色的窗口,以及三个用于指定B.G.R颜色的轨迹栏.滑动轨迹栏,并相应地更改窗口颜色.默认情况下,初始颜色将设置为黑 ...

  10. [BUUCTF]PWN——bjdctf_2020_babyrop2

    bjdctf_2020_babyrop2 附件 步骤: 例行检查,64位程序,开启了NX和canary保护 2. 试运行一下程序,看看大概的情况 提示我们去泄露libc 3. 64位ida载入,从ma ...