Eclipse导入Elasticsearch源码
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源码的更多相关文章
- Eclipse导入Hadoop源码项目及编写Hadoop程序
一 Eclipse导入Hadoop源码项目 基本步骤: 1)在Eclipse新建一个java项目[hadoop-1.2.1] 2)将Hadoop压缩包解压目录src下的core,hdfs,mapred ...
- eclipse导入Java源码
eclipse导入Java源码 下载源码包(一般jdk都自带了, 我的没有) src.zip eclipse -> window -> preferences -> JAVA -&g ...
- Hadoop1.x目录结构及Eclipse导入Hadoop源码项目
这是解压hadoop后,hadoop-1.2.1目录 各目录结构及说明: Eclipse导入Hadoop源码项目: 注意:如果没有ant的包可以去网上下,不是hadoop里面的. 然后如果通过以上还报 ...
- eclipse导入tomcat源码
我的开发环境:windows7 64位 一.官网下载tomcat源码.在此奉上一站地址:http://archive.apache.org/dist/tomcat/: 二.编译源码生成.jar文件: ...
- Eclipse导入Zookeeper源码Version2017.11.3
将Zookeeper源码导入Eclipse, Zookeeper源码需要使用ant构建后才能导入Eclipse, 和Solr的源码一样也是使用ant构建的, 大部分可以参考Eclipse导入Solr源 ...
- spring源码学习(一):eclipse导入spring源码
前言 对于一门技术,我们最先是了解它(what),然后再熟练的使用它(how)以及何时用它(when),最后肯定要看透它(why).spring作为Java开发人员可以说是最熟悉不过的了,基本每个Ja ...
- Eclipse导入Solr源码Version5.5.3
将Solr的5.5.3版本源码导入Eclipse, Solr源码需要使用ant构建后才能导入Eclipse. 1.JDK安装 Solr要求jdk1.7+: 请参考Windows下安装配置jdk 2.A ...
- Eclipse导入hadoop源码
在windows中,使用Eclipse阅读hadoop源码,首先到apache官网下载tar.gz的hadoop源码压缩文件,解压. 方法1:(hadoop技术内幕推荐) 打开Eclipse,新建ja ...
- Eclipse导入Tomcat源码(转)
想要研究下Tomcat的体系结构或者源码,最好将Tomcat的源码导入到ide中,编写实例进行代码跟踪(debug). 这里参考了网上一些资料,将自己操作过程记个流水账. 准备: 1.Tomcat源码 ...
随机推荐
- Android 高级UI组件(一)GridView与ListView
1.GridView 1.GridView学习 GridView和ListView都是比较常用的多控件布局,而GridView更是实现九宫图的首选 main.xml: <?xml version ...
- 【AWS】【TroubleShooting】EC2实例无法使用SSH远程登陆(EC2 failure for SSH connection)
1. Login AWS web console and check the EC2 instance.
- Oracle学习笔记(1)
折腾了好久 终于把oracle安装成功了.小兴奋下. 创建了一个数据库 dabook. run--> Services.msc查看服务: 可以看到DABOOK的服务已启动. 1,sys用户 在c ...
- 手写Starter
一. Starter工程的命名 Spring 官方定义的Starter通常命名遵循的格式为spring-boot-starter-{name},例如 spring-boot-starter-web.S ...
- 【Linux】【Services】【NetFileSystem】Samba
1. 简介 1.1. 背景:case is initiative by 某windows无良人事,需求是需要一整块4T的硬盘,由于ESXi5最大支持一块盘是2T大小,而且不可以使用windows动态卷 ...
- SpringBoot中使用JUnit4(入门篇)
添加依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>sp ...
- 商城项目的购物车模块的实现------通过session实现
1.新建购物车的实体类Cart public class Cart implements java.io.Serializable{ private Shangpin shangpin;//存放商品实 ...
- binlog浅析
binlog浅析 一.基础知识 什么是binlog? (图一) 全称:Binary Log (二进制日志),包含描述数据库更改的" 事件 ",例如表创建操作或对表数据的更改.二进制 ...
- Mysql资料 锁机制
目录 一.简介 二.类型 三.操作 四.死锁 第一种情况 第二种情况 第三种情况 一.简介 数据库和操作系统一样,是一个多用户使用的共享资源.当多个用户并发地存取数据 时,在数据库中就会产生多个事务同 ...
- PDF.js Electron Viewer
PDF.js 是基于 HTML5 解析与渲染 PDF 的 JavaScript 库,由 Mozilla 主导开源. 本文旨在介绍 PDF.js 于 Electron 里如何开始使用,实际尝试了用其 A ...