本篇文章为你整理了Bazel Overview()的详细内容,包含有 Bazel Overview,希望能帮助你了解 Bazel Overview。
Bazel is an open-source build and test tool similar to Make, Maven, and Gradle.
It uses a human-readable, high-level build language. Bazel supports projects in
multiple languages and builds outputs for multiple platforms. Bazel supports
large codebases across multiple repositories, and large numbers of users.
Benefits
Bazel offers the following advantages:
High-level build language. Bazel uses an abstract, human-readable
language to describe the build properties of your project at a high
semantical level. Unlike other tools, Bazel operates on the concepts
of libraries, binaries, scripts, and data sets, shielding you from the
complexity of writing individual calls to tools such as compilers and
linkers.
Bazel is fast and reliable. Bazel caches all previously done work and
tracks changes to both file content and build commands. This way, Bazel
knows when something needs to be rebuilt, and rebuilds only that. To further
speed up your builds, you can set up your project to build in a highly
parallel and incremental fashion.
Bazel is multi-platform. Bazel runs on Linux, macOS, and Windows. Bazel
can build binaries and deployable packages for multiple platforms, including
desktop, server, and mobile, from the same project.
Bazel scales. Bazel maintains agility while handling builds with 100k+
source files. It works with multiple repositories and user bases in the tens
of thousands.
Bazel is extensible. Many languages are
supported, and you can extend Bazel to support any other language or
framework.
Set up a project workspace, which is a
directory where Bazel looks for build inputs and BUILD files, and where it
stores build outputs.
You write your BUILD file by declaring build targets using
Starlark, a domain-specific language. (See example
here.)
A build target specifies a set of input artifacts that Bazel will build plus
their dependencies, the build rule Bazel will use to build it, and options
that configure the build rule.
A build rule specifies the build tools Bazel will use, such as compilers and
linkers, and their configurations. Bazel ships with a number of build rules
covering the most common artifact types in the supported languages on
supported platforms.
Run Bazel from the command line. Bazel
places your outputs within the workspace.
In addition to building, you can also use Bazel to run
tests and query the build
to trace dependencies in your code.
Bazel build process
When running a build or a test, Bazel does the following:
Analyzes the inputs and their
dependencies, applies the specified build
rules, and produces an action
graph.
Executes the build actions on the inputs until the final build outputs
are produced.
Since all previous build work is cached, Bazel can identify and reuse cached
artifacts and only rebuild or retest what’s changed. To further enforce
correctness, you can set up Bazel to run builds and tests
hermetically through sandboxing, minimizing skew
and maximizing reproducibility.
Action graph
The action graph represents the build artifacts, the relationships between them,
and the build actions that Bazel will perform. Thanks to this graph, Bazel can
track changes to
file content as well as changes to actions, such as build or test commands, and
know what build work has previously been done. The graph also enables you to
easily trace dependencies in your code.
Getting started tutorials
To get started with Bazel, see Getting Started or jump
directly to the Bazel tutorials:
以上就是Bazel Overview()的详细内容,想要了解更多 Bazel Overview的内容,请持续关注盛行IT软件开发工作室。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。