windows编译运行es源码1

news2024/10/6 1:02:06

一. 基础搭载环境

win10

jdk  11 \  jdk8

idea 2022

gradle 8.1.1   【建议4.5.1以上】

elasticsearch 7.8.0  源码及安装包

二. 安装gradle

1. 官网下载链接:https://gradle.org/releases/

2. 解压设置环境变量

(1)  GRADLE_HOME 环境变量指向你的 Gradle 解压路径

(2) 将 %GRADLE_HOME%\bin 添加到 Path 环境变量中

(3) 验证gradle是否安装成功,打开cmd命令行输入 gradle -v

(4) 配置镜像:

a. 仓库,环境变量设置   GRADLE_HOME_HOME  ,

这个目录为新构建,以 D:\gradle.gradle  为例

b. 在这个目录【 D:\gradle.gradle】中,新建init.d目录,并新建 init.gradle 文件,内容如下

allprojects{
    repositories {
        def ALIYUN_REPOSITORY_URL = 'https://maven.aliyun.com/repository/public/'
        def ALIYUN_GRADLE_PLUGIN_URL = 'https://maven.aliyun.com/repository/gradle-plugin/'
        all { ArtifactRepository repo ->
            if(repo instanceof MavenArtifactRepository){
                def url = repo.url.toString()
                if (url.startsWith('https://repo1.maven.org/maven2/')) {
                    project.logger.lifecycle "Repository ${repo.url} replaced by $ALIYUN_REPOSITORY_URL."
                    remove repo
                }
                if (url.startsWith('https://jcenter.bintray.com/')) {
                    project.logger.lifecycle "Repository ${repo.url} replaced by $ALIYUN_REPOSITORY_URL."
                    remove repo
                }
                if (url.startsWith('https://plugins.gradle.org/m2/')) {
                    project.logger.lifecycle "Repository ${repo.url} replaced by $ALIYUN_GRADLE_PLUGIN_URL."
                    remove repo
                }
            }
        }
        maven { url ALIYUN_REPOSITORY_URL }
        maven { url ALIYUN_GRADLE_PLUGIN_URL }
    }
}

idea中配置,参考IDEA如何配置 Gradle(详细版)_idea gradle配置_一条水里的鱼的博客-CSDN博客

(1) File->Settings->Build Tools->Gradle   指定 gradle仓库目录

这里仓库可以使用maven仓库

三.  es编译

前置:下载es7.8源码及安装包

1. 打开 gradle自动下载包,其最终运行是  server目录src  

org.elasticsearch.bootstrap.Elasticsearch

2. 设置es相关环境配置,特别注意添加环境变量为添加 VM 选择中选择

-Des.path.conf=E:\es\elasticsearch-7.8.0\config
-Des.path.home=E:\es\elasticsearch-7.8.0
-Dlog4j.shutdownHookEnabled=false
-Dlog4j2.disable.jmx=true
-Djava.security.policy=E:\es\elasticsearch.policy

其中,E:\es\elasticsearch-7.8.0  为下载的es安装包,解压之后根目录

elasticsearch.policy 文件内容如下

grant{
	permission javax.management.MBeanTruxtPermission "register";
	permission javax.management.MBeanServerPermission "createMBeanServer";
	permission java.lang.RuntimePermission "createClassLoader";
};

3. 运行报错

Exception in thread "main" java.lang.NullPointerException at org.elasticsearch.node.InternalSettingsPreparer.checkSettingsForTerminalDeprecation(InternalSettingsPreparer.java:119)

需要配置  es下载包中config目录下面  elasticsearch.yml

node.name: node-1

4. idea配置相关,找不到类之类的

(1)idea > preferences > Build, Execution, Deployment > Build Tools > Gradle

Build and run using gradle 改成 Build and run using IntelliJ IDEA

(2)Edit Configuration,找到Include dependencies with Provided scope,【在 modify options】

5. 运行成功之后,打开localhost:9200

参考:

ES本地debug详解_ES_泽睿_InfoQ写作社区

ES核心源码(一):源码运行环境搭建 - 知乎

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/668990.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

利用jmeter java sample端口转发实现对远程数据库的压力测试

1 需求背景 对数据库进行压力测试时,需要模拟同一时间大量的sql请求发送,借助于jmeter的 sql请求可以实现,但是对RDS来说,需要进行端口映射(跳板机)访问远程数据库,对于单线程手工测试来说,可以直接通过CRT进行端口跳转…

chatgpt赋能python:Python支持一行多写,让你的代码更简洁高效

Python支持一行多写,让你的代码更简洁高效 Python是一种简洁而又灵活的编程语言,它支持一行多写代码,让你的代码更加简洁高效。当你需要在一行代码中写入多个语句时,使用一行多写可以让你的代码更加易读和易维护。这篇文章将介绍…

NUCLEO-F411RE RT-Thread 体验 (4) - GCC环境 LED控制以及CMD命令的添加

NUCLEO-F411RE RT-Thread 体验 (4) - GCC环境 LED控制以及CMD命令的添加 1、LED的控制 前面pin驱动移植后,我们使用rt_pin_mode() rt_pin_write() 控制gpio拉高拉低,从而控制LED灯的闪烁。 整个pin的初始化流程在rt_hw_board_init里。 rt_hw_pin_init…

梅林固件启用自定义DDNS(以cloudflare为例)

参考: In-a-dyn 组件:In-a-dynhttps://github.com/RMerl/asuswrt-merlin.ng/wiki/DDNS-services In-a-dyn配置示例https://github.com/troglobit/inadyn/tree/master/examples原理: 原版梅林固件即Asuswrt-Merlin 自384.7开始,引…

JDK自带的构建线程池的方式之newSingleThreadExecutor

newSingleThreadExecutor从名称上就可以知道这个是一个单例的线程池。在这个线程池中只有一个线程来处理任务。 就可以使用在业务涉及到顺序消费的时候。 newSingleThreadExecutor的代码展示 可以从这个在Executors中的静态方法newSingleThreadExecutor可以发现,该…

chatgpt赋能python:Python数值区间判断

Python数值区间判断 Python是一种高级编程语言,具有强大的数值计算和处理功能。在Python中,经常需要进行数值区间判断,以确定一个特定的数值是否位于指定的范围内。本文将介绍Python中常用的数值区间判断方法,并对其进行详细的讲…

SpringBoot操作Word实现文字替换和盖章(提供Gitee源码)

前言:在日常的工作当中,避免不了会涉及到一些Word文件方面的操作,这篇博客将使用SpringBoot整合开源Apache来操作Word,分享的都是目前实际当中会经常用到的一些功能代码都实际测试过,只分享干货,大家一键复…

AI加持、共建共享...亚马逊云科技重新定义云安全

我们正在进入数字化时代,无数传统企业正在飞速走上云端,无数基础设施服务在云的加持下焕发全新的活力。AI、物联网、大数据等新兴技术逐步落地应用,IaaS、PaaS、云原生技术日渐成熟,“云”正在快速扩容。2021年,我国云…

#10035. 「一本通 2.1 练习 1」Power Strings

Power Strings 题意简述: 求一个字符串由多少个重复的子串连接而成。 例如 ababab 由三个 ab 连接而成,abcd 由 abcd 由一个 abcd 连接而成。 输入格式 本题多组数据。 每一组数据仅有一行,这一行仅有一个字符串 s s s。 输入的结束标…

蓝牙GATT协议介绍

前言 现在低功耗蓝牙(BLE)连接都是建立在 GATT (Generic Attribute Profile) 协议之上。GATT 是一个在蓝牙连接之上的发送和接收很短的数据段的通用规范,这些很短的数据段被称为属性(Attribute)。 GAP 详细介绍 GAT…

鉴源论坛丨汽车电子ISO 26262:2018标准概述(一)

作者 | 郭建 上海控安可信软件创新研究院特聘专家 版块 | 鉴源论坛 观模 摘要:安全在汽车研发中是关键要素之一,辅助驾驶、车辆的动态控制等功能的研发和集成都需要加强安全系统研发,同时,需要为满足所有预期的安全目标提供证据…

牛客网最新890道大厂 Java 八股文面试题整理

程序员真的是需要将终生学习贯彻到底的职业,一旦停止学习,离被淘汰,也就不远了。 面试跳槽季,这是一个千年不变的话题,每到这个时候,很多人都会临阵磨枪,相信不快也光。于是,大家都…

2023 最新版navicat 下载与安装 步骤及演示 (图示版)

2023 最新版navicat 下载与安装 步骤演示 -图示版 1. 下载Navicat2 .安装navicat 博主 默语带您 Go to New World. ✍ 个人主页—— 默语 的博客👦🏻 《java 面试题大全》 🍩惟余辈才疏学浅,临摹之作或有不妥之处,还请…

三子棋小游戏【C语言】

目录 前言 一、基本实现逻辑 二、实现步骤 1.实现进入游戏后的选择菜单——》这个实现起来较为容易,我们约定为:1是玩游戏, 0 是退出游戏! 2.要玩完了一局后接着玩,很容易想到要用循环。 3.采用多文件编程---》我…

0011-TIPS-pawnyable : Heap-Overflow

原文 Linux Kernel PWN | 040202 Pawnyable之堆溢出 Holstein v2: Heap Overflowの悪用 题目下载 漏洞代码 #include <linux/module.h> #include <linux/kernel.h> #include <linux/cdev.h> #include <linux/fs.h> #include <linux/uaccess.h>…

【Nginx介绍和安装与升级】

文章目录 Nginx网站服务一、nginx服务基础1. Nginx简介2. Tengine3. Nginx 相对于 Apache 的优点4. 阻塞与非阻塞 同步与异步5. nginx 应用场景 二、编译安装nginx 服务1. 在线安装nginx2. nginx编译安装1. 关闭防火墙&#xff0c;将安装nginx所需软件包传到/opt目录下2. 安装依…

二维码标签制作教程

如今二维码已被广泛应用在了许多场景中&#xff0c;譬如设备巡检、固定资产盘点、隐患上报、人员管理等&#xff0c;在二维码投入使用前需要为设备、物品、人员等制作一物一码标签。为了让标签快速落地&#xff0c;可使用草料二维码的标签制作功能&#xff0c;只需选择心仪的标…

Cortext-M3系统:中断的具体行为(6)

1、中断/异常的响应序列 当CM3开始响应一个中断时&#xff0c;会在它小小的体内奔涌起三股暗流&#xff1a; ​ 入栈&#xff1a;把8个寄存器的值压入栈 ​ 取向量&#xff1a;从向量表中找出对应的服务程序入口地址 ​ 选择堆栈指针MSP/PSP&#xff0c;更新堆栈指针SP&#xf…

数据恢复技巧:如何恢复已删除的手机短信

短信包含大量重要信息&#xff0c;例如个人联系人、密码和重要业务数据。丢失有价值的数据可能会令人失望&#xff0c;但很高兴知道可以使用多种方法恢复短信。 在本文中&#xff0c;我们将探讨您可以采取哪些步骤来恢复 Android 或 iOS 设备上丢失或删除的短信。 第 1 部分…

chatgpt赋能python:Python指定区域截图:优化截图流程的最佳方式

Python指定区域截图&#xff1a;优化截图流程的最佳方式 在网络时代&#xff0c;图片作为一种重要的信息传播方式&#xff0c;扮演着举足轻重的角色。截图作为最常见的图片处理方式之一&#xff0c;也时常被我们用于记录屏幕内容、报告问题及展示操作流程。 若想提高截图的效…