Bigtop 添加新的组件
# 一、整体说明
在 Bigtop 构建体系中,所有组件的源码都应在构建前缓存至 bigtop/dl/
目录。这个机制确保构建过程中无需频繁联网,提升稳定性。
要实现这套流程,我们需要完成两个关键动作:
- 在
bigtop.bom
中添加组件定义; - 执行对应的
gradle <组件名>-download
命令进行下载。
# 二、第一步:配置组件信息
以 Paimon 为例,我们在 bigtop.bom
文件的 components {}
块中添加以下内容:
'paimon' {
name = 'paimon'
rpm_pkg_suffix = "_" + bigtop.base_version.replace(".", "_")
relNotes = 'Paimon v1.1.0'
version { base = '1.1.0'; pkg = base; release = 1 }
tarball {
source = "release-${version.base}.tar.gz"
destination = "${name}-${version.base}.tar.gz"
}
url {
site = bigtop.gh_proxy + "https://github.com/apache/paimon/archive/refs/tags/"
archive = site
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
说明
关键字段为 source
和 destination
,分别表示从远程仓库拉取的文件名和在本地 bigtop/dl/
中保存的文件名。
# 📌 Hadoop 示例
如果你想下载的是 Hadoop 源码,可使用如下配置:
'hadoop' {
name = 'hadoop'
rpm_pkg_suffix = "_" + bigtop.base_version.replace(".", "_")
relNotes = 'Apache Hadoop'
version { base = '3.3.4'; pkg = base; release = 1 }
tarball {
destination = "${name}-${version.base}.tar.gz"
source = "${name}-${version.base}-src.tar.gz"
}
url {
download_path = "/hadoop/common/hadoop-${version.base}"
site = "${apache.APACHE_MIRROR}/${download_path}"
archive = "${apache.APACHE_ARCHIVE}/${download_path}"
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 三、第二步:执行组件源码下载
# 📌 Hadoop 示例
要下载 Hadoop 的源码包,只需执行:
gradle hadoop-download
1
下载成功后文件路径为:
dl/hadoop-3.3.4.tar.gz
1
下载成功日志如下:
# 四、第三步:检查下载结果
你可以直接进入 output/dl/
目录,查看是否生成了指定的源码包:
注意
如果文件已存在,Bigtop 会默认跳过下载并直接使用,除非你手动删除或强制清理缓存。
# 五、通用模板结构
如需添加其他 GitHub 项目的组件,可参考以下结构模板:
'你的组件名' {
name = '你的组件名'
version { base = 'X.Y.Z'; pkg = base; release = 1 }
tarball {
source = "release-${version.base}.tar.gz"
destination = "${name}-${version.base}.tar.gz"
}
url {
site = bigtop.gh_proxy + "https://github.com/your-org/your-project/archive/refs/tags/"
archive = site
}
}
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
如不使用 GitHub,也可将 site
替换为 Apache 官方镜像、私服等。