Bazel的简介
Bazel:Build and test software of any size, quickly and reliably任意大小、快速、可靠的测试软件。Bazel是google推出的一款工程编译工具,并且已经将其开源。Bazel可以快速地构建可靠的代码,谷歌的大多数软件都是由它来构建,因此,在谷歌的开发环境里,它主要负责处理代码构建相关问题:大规模数据构建问题,共享代码库问题,从源代码构建的软件的相关问题。Bazel支持多种语言并且跨平台,还支持自动化测试和部署、具有再现性(Reproducibility)和规模化等特征。Bazel在谷歌大规模软件开发实践能力方面起着至关重要的作用。简单来说,Bazel类似于make。
加快构建和测试速度:BaZeL只重建必要的东西。通过高级的本地缓存和分布式缓存、优化的依赖性分析和并行执行,可以快速和增量地进行构建。
一种工具,多种语言:构建和测试Java、C++、Android、IOS、GO以及各种各样的其他语言平台。BAZEL在Windows、MaOS和Linux上运行。
可缩放:BAZEL帮助您扩展您的组织、代码库和持续集成系统。它处理任意大小的代码库,在多个存储库或巨大的MMOREPO中。
可扩展到您的需要:用Bazel熟悉的扩展语言轻松地支持新语言和新平台。共享和重用由成长中的Bazel社区编写的语言规则。
1、Bazel的应用:可以构建一个服务器、Android和iOS应用。
Bazel的安装
1、Windows安装&安装:https://docs.bazel.build/versions/master/install-windows.html
(1)、下载并安装,
(2)、将该路径添加到系统环境变量内
(3)、编辑环境参数:从“控制面板或开始菜单”打开“环境变量”对话框,并在“用户变量”部分下添加或编辑以下变量:
1)、编辑路径。将新条目添加到列表的开头:BAZEL.EXE的目录。(例如:C:BAZEL)。MSYS2的UR \ bin目录。(例如:c:\Mys64 \ Ur\bin)。如果您将构建Python代码:Python .EXE的目录。(例:C:\Python 3)。
2)、添加BZELLSHIH,其价值必须是MyS2 BASH的路径。例子:c:\Mys64 \Ur\bin \Bas.EXE
3)、添加JavaJHEAD(如果你将构建Java代码)。它的值必须是安装Java JDK 8的目录,例如C:\程序文件\java\jdk1.8015152。
2、Ubuntu下载&安装:https://docs.bazel.build/versions/master/install-ubuntu.html
Bazel的使用方法
0、使用bazel时,先要了解几个概念:
workspace 工作空间,每个工作空间中由一个WORKSPACE文件,来描述工作空间所使用到的信息。
package 程序包,每个程序包中包含一个BUILD文件,此文件中描述了此工具包的生成构建方式。
target 目标,生成的目标,每个target又可以作为另外一个规则的输入。绝大部分的target属于两种基本类型中的一种,file和rule。另外,还有一种其他的target类型,package group。但是他们很少见。
(1)、关于工作区
bazel builds应该在一个工作区内运行,这个工作区应该包括源代码和build输出目录的符号链接(eg: bazel-bin、bazel-out)。工作区目录的位置是可以随意,但工作区的根目录必须包含一个名为WORKSPACE的工作区配置文件,工作区配置文件可以是一个空文件,也可以包含引用外部构建输出所需的依赖关系。在一个工作区内,可以根据需求共享多个项目。
(2)、创建Build文件
Bazel通过检查BUIDL文件可以知道那些目标文件被创建在项目中,这些BUILD文件采用与Python相似的语法所写,这种语言通常是一系列规则的声明,每个规则指定相应的输入、输出以及实现输入到输出的方法。
1、Windows使用方法:https://docs.bazel.build/versions/master/windows.html
2、Ubuntu使用方法: