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

编译Apache Ambari 2.7.7时依赖解析失败的解决咨询

Ambari 2.7.7编译依赖解析失败解决方案

问题本质

你遇到的ambari-metrics-timelineservice、ambari-metrics-host-aggregator等构件缺失,并非远程Maven仓库没有,而是这些属于Ambari内部模块的编译产物,需要先在本地编译生成并安装到本地Maven仓库,同时官方编译流程存在小问题,需结合代码修复调整。

解决步骤

1. 清理本地Maven失败缓存

本地仓库已缓存依赖查找失败的记录,需先删除对应目录以强制重新解析:

rm -rf ~/.m2/repository/org/apache/ambari/ambari-metrics-*

2. 修复ambari-metrics-assembly模块依赖配置

打开ambari-metrics/ambari-metrics-assembly/pom.xml,修改以下内容:

  • 将ambari-metrics-timelineservice、ambari-metrics-host-aggregator、ambari-metrics-common等依赖的<scope>从compile改为provided
  • 确保这些依赖的<groupId>、<artifactId>、<version>与当前编译版本2.7.7.0.0完全一致

3. 调整编译顺序,先编译核心依赖模块

不要单独执行mvn dependency:resolve,而是先编译ambari-metrics下的核心子模块,将其jar包安装到本地仓库:

mvn -B clean install -DskipTests -Drat.skip=true -pl ambari-metrics/ambari-metrics-timelineservice,ambari-metrics/ambari-metrics-host-aggregator,ambari-metrics/ambari-metrics-common -am

参数说明:

  • -pl 指定要编译的模块路径
  • -am 自动编译这些模块依赖的其他模块

4. 执行完整编译与RPM打包

完成上述步骤后,再执行官方文档中的完整编译命令:

mvn -B clean install rpm:rpm -DnewVersion=2.7.7.0.0 -DbuildNumber=388e072381e71c7755673b7743531c03a4d61be8 -DskipTests -Dpython.ver="python >= 2.6" -Drat.skip=true

关键说明

  • 单独执行mvn dependency:resolve会跳过本地模块的编译,直接尝试从远程仓库拉取内部构件,必然失败,需先编译内部依赖模块
  • 上述pom修改参考了Ambari社区的代码修复方案,解决了模块依赖顺序与scope配置错误的问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 10:22:43