elasticsearch-5.6.14源码编译 导入到idea

本文档详细记录了如何从GitHub下载Elasticsearch 5.6.14的源码,配置JDK 1.8和Gradle 4.3.1,解决编译报错,成功导入IDEA并运行main函数的过程,包括遇到的JVM参数问题和log4j2配置。

1.github下载elasticsearch的源码包
2.本地jdk用1.8
3.gradle版本为4.10.3
4.解压源码后,修改源代码根目录下的build.gradle文件,加入阿里云的maven镜像:allprojects {
repositories {
maven { url "http://maven.aliyun.com/nexus/content/groups/public/" }}}

5.在elasticsearch home目录执行gradle idea报错
报错如下:
D:\code\elasticsearch-5.6.14>gradle idea
To honour the JVM settings for this build a new JVM will be forked. Please consider using the daemon: https://docs.gradle.org/4.10.3 ... html.
Daemon will be stopped at the end of the build stopping after processing

FAILURE: Build failed with an exception.

* Where:
Build file 'D:\code\elasticsearch-5.6.14\benchmarks\build.gradle' line: 31

* What went wrong:
A problem occurred evaluating project ':benchmarks'.
> Failed to apply plugin [id 'carrotsearch.randomized-testing']
> Cannot add task 'test' as a task with that name already exists.

 

6.经别人提醒,发现以上报错原因是由于gradle版本的原因导致的

7.尝试更换gradle 版本未4.3.1后编译成功

8.导入工程至idea

9.运行org.elasticsearch.bootstrap.Elasticsearch main函数,报错,JVM参数加上:-Des.path.home=D:\code\esData解决

Exception in thread "main" java.lang.IllegalStateException: path.home is not configured
    at org.elasticsearch.env.Environment.<init>(Environment.java:128)
    at org.elasticsearch.env.Environment.<init>(Environment.java:118)
    at org.elasticsearch.node.InternalSettingsPreparer.prepareEnvironment(InternalSettingsPreparer.java:90)
    at org.elasticsearch.cli.EnvironmentAwareCommand.createEnv(EnvironmentAwareCommand.java:75)
    at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:70)
    at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:134)
    at org.elasticsearch.cli.Command.main(Command.java:90)
    at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:91)
    at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:84)

10.JVM参数加上:-Dlog4j2.disable.jmx=true

2019-06-19 19:49:06,479 main ERROR Could not register mbeans java.security.AccessControlException: access denied ("javax.management.MBeanTrustPermission" "register")
    at java.security.AccessControlContext.checkPermission(AccessControlContext.java:472)
    at java.lang.SecurityManager.checkPermission(SecurityManager.java:585)
    at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.checkMBeanTrustPermission(DefaultMBeanServerInterceptor.java:1848)
    at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerMBean(DefaultMBeanServerInterceptor.java:322)
    at com.sun.jmx.mbeanserver.JmxMBeanServer.registerMBean(JmxMBeanServer.java:522)
    at org.apache.logging.log4j.core.jmx.Server.register(Server.java:393)
    at org.apache.logging.log4j.core.jmx.Server.reregisterMBeansAfterReconfigure(Server.java:168)
    at org.apache.logging.log4j.core.jmx.Server.reregisterMBeansAfterReconfigure(Server.java:141)
    at org.apache.logging.log4j.core.LoggerContext.setConfiguration(LoggerContext.java:558)
    at org.apache.logging.log4j.core.LoggerContext.start(LoggerContext.java:263)
    at org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:207)
    at org.apache.logging.log4j.core.config.Configurator.initialize(Configurator.java:220)
    at org.apache.logging.log4j.core.config.Configurator.initialize(Configurator.java:197)
    at org.elasticsearch.common.logging.LogConfigurator.configureStatusLogger(LogConfigurator.java:175)
    at org.elasticsearch.common.logging.LogConfigurator.configure(LogConfigurator.java:143)
    at org.elasticsearch.common.logging.LogConfigurator.configure(LogConfigurator.java:122)
    at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:307)
    at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:132)
    at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:123)
    at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:70)
    at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:134)
    at org.elasticsearch.cli.Command.main(Command.java:90)
    at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:91)
    at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:84)

 

11.从可运行es目录中拷贝log4j2.properties

ERROR: no log4j2.properties found; tried [D:\code\esData\config] and its subdirectories

 

12.从可运行es目录中拷贝modules目录到D:\code\esData

org.elasticsearch.bootstrap.StartupException: java.lang.IllegalStateException: Unsupported transport.type

.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值