环境及工具
- JDK12
- Gradle5.4.1
- GIT
源码及预处理
- 到github将代码clone下来,可以根据自己的需求来获取版本。
- 不同的IDE使用不同的方式编译,这里我用的是idea,所以直接运行
gradle idea
进行编译 - 启动idea,将工程导入,会自动编译,时间取决于网络。
源码运行
- 程序的主入口在
Elasticsearch.java
类 - 需要添加VM options,必要的几个参数有以下几个
-Des.path.home=D:\elasticsearch\home 配置es的主目录
-Des.path.conf=D:\elasticsearch\home\config 配置es的配置文件目录
-Dlog4j2.disable.jmx=true
可以官网下载一个同版本的es,将目录制定为该目录,或者也可以自己新建一个文件夹
- 如果是新建目录,需要在config目录下添加
log4j2.properties
和elasticsearch.yml
,另外还需要一个发行版的modules
文件夹,或者自己编译将modules
文件复制过去 - 修改
server
模块下的build.gradle
中的compileOnly project(':libs:plugin-classloader')
为compile project(':libs:plugin-classloader')
- es中使用了SecurityManager,需要在
java_home
中的conf\security\java.policy
中添加一行代码:permission java.lang.RuntimePermission "createClassLoader";