学习目标

  • 理解 Bazel 的优势
  • 掌握 Bazel 基本概念
  • 学会构建简单项目

11.1 什么是 Bazel

Bazel 是 Google 开源的构建工具,用于构建大型项目。

为什么选择 Bazel

  • 快速:增量构建,只重新构建改变的部分
  • 可扩展:支持大型项目
  • 多语言:支持 C++、Java、Python 等
  • 可复现:相同输入产生相同输出

11.2 安装 Bazel

Ubuntu

sudo apt install apt-transport-https curl gnupg
curl -fsSL https://bazel.build/bazel-release.pub.gpg | gpg --dearmor > bazel.gpg
sudo mv bazel.gpg /etc/apt/trusted.gpg.d/
echo "deb [arch=amd64] https://storage.googleapis.com/bazel-apt stable jdk1.8" | sudo tee /etc/apt/sources.list.d/bazel.list
sudo apt update && sudo apt install bazel

验证

bazel --version

11.3 核心概念

WORKSPACE

项目根目录的 WORKSPACE 文件标识这是一个 Bazel 项目。

BUILD

每个目录的 BUILD 文件定义构建规则。

Target

构建的目标,如可执行文件、库等。

11.4 第一个 Bazel 项目

项目结构

myproject/
├── WORKSPACE
├── BUILD
└── main.c

WORKSPACE

# 空文件即可

BUILD

cc_binary(
    name = "hello",
    srcs = ["main.c"],
)

main.c

#include <stdio.h>

int main() {
    printf("Hello, Bazel!\n");
    return 0;
}

构建和运行

bazel build //:hello
bazel run //:hello

下一步

第 12 章:Bazel 构建系统 - 强化

更新时间: