Bazel新手入门
Bazel简介
Bazel是一个开源的构建工具,用于高效地管理和自动化大型项目的构建和测试。
什么是构建工具?
在软件开发中,构建工具可以自动化帮助你将 源代码 转化为 可执行文件。(当然前提是你得按照bazel语法编写好构建脚本)。
拿bazel举例,bazel主要帮我们做这几件事情:
- 下载和管理项目依赖(像第三方库)。
- 编译源代码,生成可执行文件或者库文件。
- 执行测试,确保代码按预期工作。
如果不用构建工具的话,我们就得手动 下载依赖(甚至还得更新依赖),编译源代码、执行测试。
Bazel使用场景及优点
Bazel最初由 Google 开发,尤其适用于那些有大量代码、跨语言、跨平台的大型项目。
Bazel 相对于其他传统的构建工具的优势有:
- 增量构建:Bazel只会去构建那些发生变化的部分,避免了每次修改一点代码都要重新构建整个项目(构建大项目可是要花很长时间的),这样子可以大大节省时间。
- 并行化:Bazel 会自动并行化构建过程,充分利用多核 CPU,加速构建过程。
- 跨平台:Bazel 能够在不同操作系统(如 Linux、macOS、Windows)上使用,并且支持不同平台的交叉编译(例如,你可以在 Windows 上编译生成适用于 Linux 的二进制文件)。
- 多语言支持:Bazel 不仅支持 C++、Java、Python 等常见编程语言,还能通过插件支持其他语言。
Bazel 的核心概念
要想学习Bazel,首先我们要学习Bazel 基础且核心的几个概念。
工作区(Workspace)
工作区是 Bazel 构建的基础。一个工作区包含了所有源代码和构建文件。
WORKSPACE 文件 是 Bazel 构建的根目录,同时它也告诉 Bazel 这是一个完整的项目;
所以每个项目根目录都需要放一个 WORKSPACE 文件 来 告诉Bazel这是一个完整的且需要构建的项目。
BUILD 构建文件
BUILD 构建文件是 Bazel 的构建说明书。
编写BUILD 定义 如何构建项目中的各个目标(构建目标)。
- 一个BUILD文件可以包含一个或多个构建目标。
这些构建目标告诉 Bazel 如何处理文件、构建需要什么依赖关系以及如何生成最终产物(构建目标)。
- 构建目标中 表明了 依赖关系。
举个例子,

最低0.47元/天 解锁文章
9万+

被折叠的 条评论
为什么被折叠?



