Ambari编译——教程大纲3.0.0
# 环境准备与依赖梳理
在正式操作前,请务必参照环境准备 章节,提前完成所有依赖包安装与环境变量配置,包括 JDK、Maven、Node.js 及基础开发包,否则后续编译极易中断。
注意
环境未满足时,后续步骤将频繁遇到报错,务必逐项核查依赖与变量配置。
# 1. 源代码调整与前端依赖加速
# 1.1 优化 ambari-admin 构建流程 前端提速
编译 ambari-admin 组件时,建议如下修改 frontend-maven-plugin
配置,实现 Node.js 与 npm 国内源加速,大幅提升依赖拉取效率。
<plugin>
<groupId>com.github.eirslett</groupId>
<artifactId>frontend-maven-plugin</artifactId>
<version>1.3</version>
<configuration>
<nodeVersion>v4.5.0</nodeVersion>
<npmVersion>2.15.0</npmVersion>
<workingDirectory>src/main/resources/ui/admin-web/</workingDirectory>
<npmInheritsProxyConfigFromMaven>false</npmInheritsProxyConfigFromMaven>
</configuration>
<executions>
<execution>
<id>install node and npm</id>
<phase>generate-sources</phase>
<goals>
<goal>install-node-and-npm</goal>
</goals>
</execution>
<execution>
<id>npm install</id>
<phase>generate-sources</phase>
<goals>
<goal>npm</goal>
</goals>
<configuration>
<arguments>install --unsafe-perm --registry=https://registry.npmmirror.com</arguments>
</configuration>
</execution>
</executions>
</plugin>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
提示
加速 npm 拉取可显著缩短编译等待时间,尤其在国内网络环境下非常必要。
# 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 | 多线程自动检测16核并行,建议根据主机实际 CPU 数量调整 |
-B | 无交互模式,适合自动化与脚本集成 |
-Drat.skip=true | 跳过 LICENSE 校验,加速构建 |
-Dcheckstyle.skip=true | 跳过代码风格检查,减少不必要阻塞 |
-DskipTests | 跳过全部测试,适用于稳定环境下的打包环节 |
-Dspotbugs.skip=true | 跳过静态分析,避免 findbugs/spotbugs 报错导致失败 |
-Preplaceurl | 激活自定义 profile,自动替换部分下载链接 |
笔记
建议优先充分利用主机硬件资源,多线程构建可提升数倍性能,但首次编译依然会因依赖拉取消耗较长时间。
编译效果截图如下:
# 3. 编译产物与目录结构
编译成功后,所有 rpm 包会产出在各模块的 target/rpm
目录下。实际案例展示:
[root@hadoop2 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
同时可配合截图直观查看:
提示
如果在依赖安装、环境变量、网络下载等环节遇到异常,可查阅本站其他报错解决与编译排障专题,获取一键修复方案。