Bazel 工具项目教程
1. 项目的目录结构及介绍
bazel-tools/
├── README.md
├── WORKSPACE
├── buildifier
│ ├── BUILD
│ ├── README.md
│ ├── buildifier.go
│ ├── buildifier_test.go
│ └── def.bzl
├── buildozer
│ ├── BUILD
│ ├── README.md
│ ├── buildozer.go
│ ├── buildozer_test.go
│ └── def.bzl
├── unused_deps
│ ├── BUILD
│ ├── README.md
│ ├── unused_deps.go
│ ├── unused_deps_test.go
│ └── def.bzl
└── tools
├── BUILD
├── README.md
├── tools.go
└── tools_test.go
目录结构介绍
- README.md: 项目的主文档,包含项目的基本介绍和使用说明。
- WORKSPACE: Bazel 工作区文件,用于定义项目的外部依赖。
- buildifier: 用于格式化 Bazel 构建文件的工具。
- BUILD: Bazel 构建文件,定义如何构建
buildifier
。 - README.md:
buildifier
的详细使用说明。 - buildifier.go:
buildifier
的主要代码文件。 - buildifier_test.go:
buildifier
的测试代码文件。 - def.bzl:
buildifier
的 Starlark 定义文件。
- BUILD: Bazel 构建文件,定义如何构建
- buildozer: 用于命令行操作 Bazel 构建文件的工具。
- BUILD: Bazel 构建文件,定义如何构建
buildozer
。 - README.md:
buildozer
的详细使用说明。 - buildozer.go:
buildozer
的主要代码文件。 - buildozer_test.go:
buildozer
的测试代码文件。 - def.bzl:
buildozer
的 Starlark 定义文件。
- BUILD: Bazel 构建文件,定义如何构建
- unused_deps: 用于查找 Java 库中未使用的依赖项的工具。
- BUILD: Bazel 构建文件,定义如何构建
unused_deps
。 - README.md:
unused_deps
的详细使用说明。 - unused_deps.go:
unused_deps
的主要代码文件。 - unused_deps_test.go:
unused_deps
的测试代码文件。 - def.bzl:
unused_deps
的 Starlark 定义文件。
- BUILD: Bazel 构建文件,定义如何构建
- tools: 包含其他辅助工具。
- BUILD: Bazel 构建文件,定义如何构建
tools
。 - README.md:
tools
的详细使用说明。 - tools.go:
tools
的主要代码文件。 - tools_test.go:
tools
的测试代码文件。
- BUILD: Bazel 构建文件,定义如何构建
2. 项目的启动文件介绍
WORKSPACE
WORKSPACE
文件是 Bazel 工作区的入口文件,用于定义项目的外部依赖和全局配置。在这个项目中,WORKSPACE
文件可能包含以下内容:
workspace(name = "bazel_tools")
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
http_archive(
name = "buildifier",
urls = ["https://github.com/bazelbuild/buildtools/releases/download/3.5.0/buildifier-3.5.0.linux-amd64"],
sha256 = "e46c16180bc49487bfd0f1ffa7345364718c57334fa0b55f6ad0a24b1438576d",
strip_prefix = "buildifier-3.5.0",
build_file = "@//:buildifier.BUILD",
)
http_archive(
name = "buildozer",
urls = ["https://github.com/bazelbuild/buildtools/releases/download/3.5.0/buildozer-3.5.0.linux-amd64"],
sha256 = "e46