You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

从源码构建Elasticsearch时遇ml-cpp:7.17.9-SNAPSHOT依赖缺失错误

解决Elasticsearch 7.17.9-SNAPSHOT源码构建时ml-cpp依赖缺失问题

问题现象

执行源码构建命令:

./gradlew :distribution:archives:linux-tar:assemble

出现依赖解析错误,核心提示:

Could not find org.elasticsearch.ml:ml-cpp:7.17.9-SNAPSHOT.

完整错误日志如下:

Could not determine the dependencies of task ':x-pack:plugin:ml:bundlePlugin'.
> Could not resolve all task dependencies for configuration ':x-pack:plugin:ml:nativeBundle'.
   > Could not find org.elasticsearch.ml:ml-cpp:7.17.9-SNAPSHOT.
     Searched in the following locations:
       - https://artifacts-snapshot.elastic.co/ml-cpp/7.17.9-SNAPSHOT/downloads/ml-cpp/ml-cpp-7.17.9-SNAPSHOT.zip
     Required by:
         project :x-pack:plugin:ml

切换至Elasticsearch最新SNAPSHOT版本构建时可正常完成,旧版本则触发该错误。

解决方案

1. 切换至正式发布版本而非SNAPSHOT

Elastic的快照仓库会定期清理旧的SNAPSHOT包,7.17.9-SNAPSHOT的ml-cpp依赖已被移除。若无需使用快照版本,切换到7.17.9的正式标签:

git checkout v7.17.9

之后重新执行构建命令,正式版的依赖会从稳定仓库拉取,不会出现缺失问题。

2. 本地构建对应版本的ml-cpp依赖

如果必须使用7.17.9-SNAPSHOT,需手动构建ml-cpp包并让Elasticsearch引用:

  • 克隆ml-cpp仓库,切换到与Elasticsearch 7.17.9匹配的分支/提交:
    git clone https://github.com/elastic/ml-cpp.git
    cd ml-cpp
    git checkout <对应7.17.9的commit哈希>
    
  • 执行ml-cpp的构建流程(需安装官方文档要求的编译依赖),生成ml-cpp-7.17.9-SNAPSHOT.zip包。
  • 将生成的zip包放置到Elasticsearch构建可识别的位置:
    • 方式一:修改Elasticsearch项目的build.gradle配置,将ml-cpp依赖指向本地文件路径。
    • 方式二:将本地构建的包安装到本地Maven仓库,让Gradle从本地仓库解析依赖。

3. 排查仓库配置(辅助验证)

检查Elasticsearch项目中build.gradle里的ml-cpp仓库配置是否包含快照源,但由于旧快照已被清理,此方法仅用于确认配置正确性,无法解决依赖缺失问题。

内容的提问来源于stack exchange,提问作者Ruthwik_

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 19:22:58