bazel---基础概念

文件类

WORKSPACE(工作空间):

  • 是什么?
    WORKSPACE是工作空间,是一个包含项目源文件和 Bazel 构建后文件输出的目录。 它还包含 Bazel 认为特殊的文件。一般位于项目根目录,标识此为bazel工作区的根目录。
  • 有什么用?
定义外部依赖: WORKSPACE 文件用于指定工作空间中项目所依赖的外部依赖项,如第三方库、工具等。通过添加适当的依赖声明,Bazel 将会自动下载和管理这些依赖项。

配置构建工具链: WORKSPACE 文件可以配置工具链,包括编译器、链接器和其他构建工具的版本和路径。这样可以确保项目使用特定版本的工具链进行构建。

引入扩展和规则: WORKSPACE 文件还可以引入自定义规则和扩展,以满足特定项目的需求。这些规则和扩展可以扩展 Bazel 的功能,并添加项目特定的构建规则。

定义构建选项: WORKSPACE 文件可以定义构建选项和配置条件,以根据不同的构建环境或目标平台应用不同的规则行为。

BUILD/BUILD.bazel(包Packages):

  • 是什么?
    BUILD文件是用于定义构建规则和目标的文件。一个BUILD文件定义一个Package,Package包含其所在目录中所有文件及子目录。
  • 有什么用?
定义目标: BUILD 文件用于定义构建目标,例如可执行文件、库文件、测试等。通过在 BUILD 文件中定义目标,您可以告诉 Bazel 如何构建和组织项目的不同部分。

指定依赖关系: BUILD 文件允许您指定目标之间的依赖关系。通过声明目标之间的依赖关系,Bazel 可以自动解析和构建这些依赖关系,确保构建过程的正确性和顺序。

配置构建规则: BUILD 文件允许您配置构建规则和行为。您可以设置编译选项、链接选项、编译器版本等,以满足项目的特定需求。

控制目标可见性: BUILD 文件可以控制目标的可见性。您可以指定哪些目标可以在当前目录或其他目录中可见,以控制目标的访问范围和可重用性。

.bzl文件

  • 是什么?
    .bzl 文件用于定义和扩展构建规则的文件。这些文件包含了自定义的 Starlark 函数和宏,可以在构建配置中使用。
  • 有什么用?
定义自定义规则和函数: .bzl 文件允许您定义自定义的构建规则、函数和宏。通过编写 Starlark 代码,您可以根据项目的需求创建自定义的构建逻辑,从而扩展 Bazel 的功能。

重用构建逻辑: .bzl 文件提供了一种模块化的方式来重用构建逻辑。您可以将常用的构建规则和函数封装在 .bzl 文件中,然后在不同的构建配置中进行引用和复用。

提供项目特定的构建规则: .bzl 文件可以用于定义特定项目的构建规则。这使得团队可以根据自己的需求和约定定制构建行为,以满足项目的特定需求。

扩展 Bazel 功能: 通过使用 .bzl 文件,您可以扩展 Bazel 的功能并添加新的构建规则。这使得您可以根据项目的要求定制化构建过程,并引入额外的构建工具和规则

逻辑类

规则:

  • 是什么?
    规则(Rule)是用于定义构建目标和构建规则的核心概念之一。 规则说明了输入和输出的关系或从输入生成输出的步骤。规则定义了如何构建和组织代码,以及构建目标之间的依赖关系。
  • 有什么用?
    作用是将构建过程自动化和标准化,提供一种统一的方式来构建、测试和处理不同类型的目标。通过定义规则,开发人员可以描述项目的结构和依赖关系,指定构建操作,并指定构建过程中所需的输入和输出。

目标:

  • 是什么?
    目标(Target)是指构建过程中要生成的一个或多个输出。目标可以是源代码文件、库文件、可执行文件、测试结果等等。总结而言,目标是构建系统中要生成的输出,它们与规则相关联,并描述了构建过程中要执行的操作和所需的输入。
  • 有什么用?
    目标通常与规则(Rule)相关联,规则描述了如何从输入生成目标。规则定义了输入文件、操作和输出文件,而目标则是规则执行后生成的结果。
    目标的主要作用是描述构建过程中要生成的输出,以及构建系统如何处理这些输出。通过定义目标,构建系统可以跟踪和管理项目中的不同构建单元,并根据需要执行构建操作,以确保生成正确的输出。

标签:

  • 是什么?
    目标的名字被称为标签。标签(Label)是用于标识和引用构建目标的一种方式。通常形式://path/to/package:target
  • 有什么用?
    通过使用标签,可以在构建文件中指定目标的依赖关系。
    标签还可以在命令行中使用,用于指定要构建或测试的目标。
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值