源码编译步骤:
1.下载JDK(1.8)和gradle(3.5),并配置环境变量
repositories {
maven {
url 'http://maven.aliyun.com/nexus/content/groups/public/'
}
}
dependencies {
classpath 'com.github.jengelman.gradle.plugins:shadow:1.2.3'
}
}
)
去官网上下载对应版本的安装包,将安装包config目录下的东西D:\Code\ElasticSearch\elasticsearch-5.6.4\config直接拷贝到源代码的config目录D:\Code\ElasticSearch\5.6.4\elasticsearch-5.6.4\core\src\main\resources\config中
ERROR4. 报错,String index out of range: -1
版本号不一致的问题,修改 core 下面的 org.elasticsearch.Build.java 72行
// isSnapshot = true;
isSnapshot = false;
1.下载JDK(1.8)和gradle(3.5),并配置环境变量
2.因为5.6.4版本使用的是gradle,所以要将gradle的配置文件(在C:\Users\***\.gradle目录下放入init.gradle文件)的仓库路径
def REPOSITORY_URL = 'http://your_URL'
3.在IDEA中打开整个ES项目,编译源码: (注意IDEA不能用14.*,通2017,不然会报gradle的问题 -- 艹,浪费了我一天时间)
此处,我遇到了一个shadow.pom文件的报错. 此时修改报错目录下的build.gradle文件: 将url那个地方配置成ali仓库
buildscript {repositories {
maven {
url 'http://maven.aliyun.com/nexus/content/groups/public/'
}
}
dependencies {
classpath 'com.github.jengelman.gradle.plugins:shadow:1.2.3'
}
}
)
4.尝试在本地启动ES
运行ElasticSearch.java 中的main()方法
ERROR1: 找不到path.home
在 Run -> Edir Configuration中配置参数,如图: Edit-Configuration-1/2所示
ERROR2. 报错找不到配置:no log4j2.properties found; tried [D:\Code\ElasticSearch\5.6.4\elasticsearch-5.6.4\core\src\main\resources\config] and its subdirectories
去官网上下载对应版本的安装包,将安装包config目录下的东西D:\Code\ElasticSearch\elasticsearch-5.6.4\config直接拷贝到源代码的config目录D:\Code\ElasticSearch\5.6.4\elasticsearch-5.6.4\core\src\main\resources\config中
ERROR3. 报错,org.elasticsearch.bootstrap.StartupException: java.lang.IllegalStateException: Unsupported transport.type []
将安装包中modules目录(D:\Code\ElasticSearch\elasticsearch-5.6.4\modules目录内容拷过来)下内容拷贝过来。
ERROR4. 报错,String index out of range: -1
版本号不一致的问题,修改 core 下面的 org.elasticsearch.Build.java 72行
// isSnapshot = true;
isSnapshot = false;
最后,启动成功! Success!!!