使用gradle离线编译ES 8.11

gradle离线编译ES 8.11

使用Gradle进行Elasticsearch(ES)的离线编译,你需要确保所有必要的依赖项和插件都已经下载并存储在你的本地仓库中。这样,Gradle在构建过程中就不会尝试从远程仓库获取任何资源。

以下是进行ES离线编译的基本步骤:

1. 安装Gradle

首先,确保你的开发环境已经安装了Gradle。你可以从Gradle官方网站下载并安装适合你操作系统的版本。

2. 下载Elasticsearch源代码

从Elasticsearch的官方GitHub仓库或其他可靠来源克隆或下载源代码,或需要自己改成指定的版本(tag)。

bash 复制代码
git clone https://github.com/elastic/elasticsearch.git

3. 初始化Gradle Wrapper(如果尚未初始化)

如果Elasticsearch项目还没有初始化Gradle Wrapper,你可以在项目的根目录下运行以下命令来初始化它:

bash 复制代码
gradle wrapper --gradle-version <version>

<version> 是你想要使用的Gradle版本。

4. 在有网络的环境中下载依赖项

在可以访问网络的环境中,进入到Elasticsearch源代码的根目录,并执行构建命令。这将下载所有必要的依赖项到本地仓库。

bash 复制代码
cd elasticsearch
./gradlew build

5. 复制本地仓库

一旦依赖项被下载到本地仓库,你需要将这些依赖项复制到你的离线机器上的对应位置。这通常涉及复制.gradle目录(包括cacheswrapper子目录)到你的离线机器上的用户主目录下。

6. 配置Gradle使用本地仓库

在离线机器上,你可以通过设置Gradle的系统属性或环境变量来确保它使用本地仓库。通常,这不需要额外的配置,因为Gradle默认会使用用户主目录下的.gradle目录作为本地仓库。

7. 在离线机器上执行构建

现在,你可以在离线机器上使用Gradle构建Elasticsearch了。由于所有依赖项都已经在本地仓库中,Gradle应该能够成功构建项目,而无需访问外部网络。

当然,最终的编译命令根据自己需要修改,这里只是举例。

bash 复制代码
./gradlew build

注意事项

  • 确保你的离线机器上的Java版本与Elasticsearch项目要求的版本相匹配。
  • 如果Elasticsearch项目依赖其他特定的本地资源或插件,你也需要确保这些资源在离线机器上是可用的。
  • 如果Elasticsearch或其依赖项发布了新版本,并且你需要使用这些新版本,你需要在有网络的环境中重新下载依赖项,并更新你的本地仓库。
  • 离线编译可能增加构建和开发的复杂性,因为它限制了访问新版本的依赖项和插件。确保你了解这些限制,并根据需要调整你的开发流程。

通过上述步骤,你应该能够在离线环境中使用Gradle成功编译Elasticsearch。

解决定时更新造成的报错问题

使用上述步骤到离线的环境解压相关包后编译会遇到plugin的ml要求联网更新的报错,报错指向的是:nativeBundle

根据报错指向的模块,修改对应的build.gralde可以解决2小时缓存失效导致编译失败的问题。

相关推荐
AlfredZhao13 小时前
vi 删除指定范围的行,不用再反复按 dd
linux·vi
用户97183563346619 小时前
银河麒麟 KY10 申威(SW64) 安装 nginx-1.16.1-2.p01.ky10.sw_64.rpm 详细步骤
linux
猪脚踏浪21 小时前
linux 拷贝文件或目录到指定的位置
linux
摇滚侠2 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
大志哥1232 天前
ES和Logstash日志链路系统上线后遭遇切片爆炸(解决)
大数据·elasticsearch
bush42 天前
嵌入式linux学习记录十四、术语
linux·嵌入式
载数而行5202 天前
Linux 11 动态监控指令top
linux
不会C语言的男孩2 天前
Linux 系统编程 · 第 8 章:进程基础
linux·c语言
古城小栈2 天前
Unix 与 Linux 异同小叙
linux·服务器·unix
TableRow2 天前
参数化搜索的实现原理:从多维索引到查询优化
elasticsearch·全文检索