首页 > 编程语言 >ElasticSearch 7.17.20本地源码调试

ElasticSearch 7.17.20本地源码调试

时间:2024-04-22 12:45:03浏览次数:23  
标签:7.17 20 permission gradle repo 编译 源码 elasticsearch java

目录

使用本地安装gradle下载相关依赖

在gradle安装目录下的init.d目录中,创建初始化脚本init.gradle,添加如下脚本,将其中的maven仓库源全部换成国内镜像

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

        }

    }

}

gradle :distribution:archives:no-jdk-linux-tar:assemble编译linux版本

本地编译

github下载最新的源码,https://github.com/elastic/elasticsearch/tree/v7.17.20

修改wrapper.properties的gradle源:https://mirrors.cloud.tencent.com/gradle/gradle-8.5-all.zip

注意:必须是当前主分支最新的代码,否则旧版本可能有些依赖已经无法下载,导致无法编译。

gradlew :distribution:archives:no-jdk-linux-tar:assemble编译linux版本

编译完成后会在\elasticsearch-7.17.20\distribution\archives\no-jdk-linux-tar\build\distributions下生成tar.gz

本地调试

在当前目录下创建es home目录:myes

启动配置:

-Des.path.home=./myes
-Des.path.conf=./myes/config
-Dlog4j2.disable.jmx=true
-Djava.security.policy=./myes/config/elasticsearch.policy

unsuppored transport.type问题、log4j2文件缺失问题
本地编译一下windows版本,将编译结果目录中的log4j2.properties配置放入myes/config目录。将编译结果中的modules目录内容放入myes

access denied问题
config目录下创建文件elasticsearch.policy,添加如下内容:

grant {
    permission javax.management.MBeanTrustPermission "register";
    permission java.lang.RuntimePermission "createClassLoader";
    permission java.lang.RuntimePermission "setContextClassLoader";
	permission java.lang.RuntimePermission "accessDeclaredMembers";
    permission org.elasticsearch.secure_sm.ThreadPermission "modifyArbitraryThreadGroup";
};

Unknown codebases问题
将server资源中0\server\src\main\resources\org\elasticsearch\bootstrap\security.policyUnknown codebases的注释掉:

/*
grant codeBase "${codebase.elasticsearch-secure-sm}" {
  permission java.security.AllPermission;
};
*/

/*
grant codeBase "${codebase.elasticsearch}" {
  // needed for loading plugins which may expect the context class loader to be set
  permission java.lang.RuntimePermission "setContextClassLoader";
  // needed for SPI class loading
  permission java.lang.RuntimePermission "accessDeclaredMembers";
};
/*

/*
grant codeBase "${codebase.elasticsearch-plugin-classloader}" {
  // needed to create the classloader which allows plugins to extend other plugins
  permission java.lang.RuntimePermission "createClassLoader";
};
*/

启动类在server模块下:org.elasticsearch.bootstrap.Elasticsearch

浏览器localhsot:9200访问

标签:7.17,20,permission,gradle,repo,编译,源码,elasticsearch,java
From: https://www.cnblogs.com/bingmous/p/18150117

相关文章

  • 20-Linux编程
    20.1编辑器的选择20.1.1Vim编辑器编辑和保存文件搜索字符串替换字符串:[range]s/pattern/string/[c,e,g,i]替换范围选项标志含义c每次替换前询问e不显示错误信息g替换一行中的所有匹配项(这个选项通常需要使用)i不区分大小写针对程序员的......
  • 【国际会议】2024智能交通技术国际会议(ITFT 2024)
    2024智能交通技术国际会议(ITFT2024)将于2024年10月19-21日在芬兰赫尔辛基及线上同步举办。ITFT旨在为研究人员、学者和行业专业人士提供交流平台,共同讨论智能交通技术领域的最新进展。ITFT2024诚邀国内外高校、科研机构专家、学者,企业界人士及其他相关人员参会交流、展示相关领......
  • 2024年4月21日直播源分享
    从今天起,服务器正式更换,有效期三年。原有服务器当前已到期,将无法使用,请大家及时更换到最新的接口地址。直播源获取方式:关注公众号轻笺,发送消息最新,即可获取。本次更新内容如下:新增央视卫视通用线路优化广州频道在移动网络下的播放问题新增了深圳各个频道,当前仅支持电......
  • 【2024-04-20】中年遗憾
    20:00有时候我们会对自己过分苛刻。我们忘记了事后看来显而易见的事情在当时并非那么明显。                                                 ——戴维·迈尔斯昨天下......
  • 【2024-04-21】连岳摘抄
    23:59每一种事物都在它的时间里拥有自己的时间。树木在冬天不会开花春天的田野,看不到白色的冰寒。                                                 ——佩索阿聪明,......
  • 【2024-04-19】连岳摘抄
    23:59门外无人问落花,绿阴冉冉遍天涯。林莺啼到无声处,青草池塘独听蛙。                                                 ——《春暮》宋.曹豳人面临大挑战,身心总是会......
  • 洛谷题单指南-动态规划1-P3842 [TJOI2007] 线段
    原题链接:https://www.luogu.com.cn/problem/P3842题意解读:计算1-n的最短路,且每行要覆盖线段。解题思路:既然要每行覆盖线段,那往下一行走时,必然是从线段的端点往下,有可能是从左端点往下,也有可能是从右端点往下。当已知第i行,从1走到第i行的左端点且要覆盖第i行线段的路程可以计算......
  • C++ 上位软件通过Snap7开源库访问西门子S7-1200/S7-1500数据块的方法
    前言本人一直从事C++上位软件开发工作较多,在之前的项目中通过C++访问西门子PLCS7-200/S7-1200/S7-1500并进行数据交互的应用中一直使用的是ModbusTCP/ModbusRTU协议进行。Modbus上位开源库采用的LibModbus。经过实际应用发现Modbus开源库单次发送和接受的数据不能超......
  • 软工计算一 20240422
    1.python中的iter()函数迭代子Python中的iter()函数是内置函数,它负责创建一个迭代器。这个函数接受两个参数:第一个参数是准备转换为迭代器的对象。第二个参数是一个可选的sentinel对象,它用于迭代器中的next()方法,当迭代器到达sentinel值时会停止迭代。基本用法......
  • Dynamics CRM 2013 批处理
    GetServiceusingSystem;usingSystem.Configuration;usingMicrosoft.Xrm.Client;usingMicrosoft.Xrm.Client.Services;usingMicrosoft.Xrm.Sdk;usingMicrosoft.Xrm.Sdk.Query;namespaceTest{classProgram{staticvoidMain(string[]args)......