Ambari编译——教程大纲3.0.0
# 环境准备与依赖梳理
正式操作前,请务必完成环境准备章节的依赖安装和环境变量配置,包括 JDK、Maven、Node.js 及基础开发包,否则编译过程中极易报错。
# 1. 源代码调整与前端依赖加速
提示
目前在Centos 7.9 上编译 3.0.0 未出现需要报错,所以暂时不补充
# 2. 全量编译命令与参数说明
推荐如下 Maven 命令高效打包 RPM,集成多线程与常见跳过参数,显著提升构建速度:
mvn -T 16C -B install package rpm:rpm \
-Drat.skip=true \
-Dcheckstyle.skip=true \
-DskipTests \
-Dspotbugs.skip=true \
-Preplaceurl
1
2
3
4
5
6
2
3
4
5
6
参数 | 说明 |
---|---|
-T 16C | 多线程 按主机 CPU 并行,建议根据实际核数自定义 |
-B | 无交互模式,适合自动化与脚本集成 |
-Drat.skip=true | 跳过 LICENSE 校验,加速构建 |
-Dcheckstyle.skip=true | 跳过代码风格检查,减少阻塞 |
-DskipTests | 跳过全部单测,适合稳定环境下的打包场景 |
-Dspotbugs.skip=true | 跳过静态分析,规避 findbugs/spotbugs 报错导致中断 |
-Preplaceurl | 激活自定义 profile,自动替换部分依赖下载链接 |
笔记
首次编译依赖拉取消耗较长,多线程构建仅提升源码构建阶段速度。如多次反复报网络超时,建议排查仓库访问和离线包配置。
编译效果示例:
# 3. 编译产物与目录结构
编译成功后,所有 rpm 包产出在各模块的 target/rpm
目录下。实际命令与产物示例:
[root@centos5 ambari]# find . -iname *.rpm
./ambari-admin/target/rpm/ambari-admin/RPMS/noarch/ambari-admin-3.0.0.0-0.noarch.rpm
./ambari-agent/target/rpm/ambari-agent/RPMS/x86_64/ambari-agent-3.0.0.0-0.x86_64.rpm
./ambari-funtest/target/rpm/ambari-funtest/RPMS/noarch/ambari-funtest-3.0.0.0-0.noarch.rpm
./ambari-project/target/rpm/ambari-project/RPMS/noarch/ambari-project-3.0.0.0-0.noarch.rpm
./ambari-server-spi/target/rpm/ambari-server-spi/RPMS/noarch/ambari-server-spi-3.0.0.0-0.noarch.rpm
./ambari-server/target/rpm/ambari-server/RPMS/x86_64/ambari-server-3.0.0.0-0.x86_64.rpm
./ambari-serviceadvisor/target/rpm/ambari-serviceadvisor/RPMS/noarch/ambari-serviceadvisor-3.0.0.0-0.noarch.rpm
./ambari-views/target/rpm/ambari-views/RPMS/noarch/ambari-views-3.0.0.0-0.noarch.rpm
./ambari-web/target/rpm/ambari-web/RPMS/noarch/ambari-web-3.0.0.0-0.noarch.rpm
./target/rpm/ambari/RPMS/noarch/ambari-3.0.0.0-0.noarch.rpm
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
可配合实际产出截图直观查看: