Tool之Bazel:Bazel的简介、安装、使用方法之详细攻略

简介: Tool之Bazel:Bazel的简介、安装、使用方法之详细攻略

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社区编写的语言规则。

官网地址:https://www.bazel.build


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使用方法:


相关文章
|
编解码 安全 Android开发
低功耗蓝牙LE Audio Profile 详细介绍
2019年底,蓝牙官方组织SIG发布了蓝牙5.2版本的核心协议,其中增加了一个重要的特性---LE Audio。蓝牙的应用协议都是从应用层到物理层完整包含的协议,LE Audio也不例外。但蓝牙5.2核心协议仅仅定义了蓝牙LE的链路层传输Audio的方式,上层协议以及完整的LE Audio规范迟迟未出,近日,蓝牙官方组织释放了LE Audio较为完整的规范文档。
低功耗蓝牙LE Audio Profile 详细介绍
|
监控 NoSQL
JLink + GDB 调试方法
本节主要介绍嵌入式开发中常用的JLink+GDB调试方法。 调试所需软件 J-link,可以从https://www.segger.com下载对应操作系统的软件包,然后安装(注意:segger是仿真器的名字,相当常用的一款,仿真器的接口也是固定的,一般开发版上都会带有这个调试接口,如图) 运行JLinkGDBServer 按照上图中的配置,配置GDBServer,然后点击OK,进入下一个界面 注意,如果硬件连接没有问题,那么上图中的J-Link和 Device栏中显示绿色,GDB显示为红色,因为我们还没有运行GDB软件。
9181 46
|
网络协议 安全 Linux
Tool之wget:wget的简介、安装、入门、使用方法之详细攻略(一)
Tool之wget:wget的简介、安装、入门、使用方法之详细攻略
Tool之wget:wget的简介、安装、入门、使用方法之详细攻略(一)
|
4月前
|
存储 缓存 人工智能
图索引性能提升 400%:详解 VSAG 向量检索框架
VSAG 是蚂蚁集团开源的图索引向量检索框架。 本文源自 VSAG 团队在 VLDB'25 发表的《VSAG: An Optimized Search Framework for Graph-based Approximate Nearest Neighbor Search》,介绍 VSAG 框架如何通过缓存优化、自动调参和距离计算加速,在保证高召回率前提下将检索性能提升最高 400%。
|
9月前
|
存储 机器学习/深度学习 算法
|
搜索推荐 数据挖掘 数据处理
《探索 Faiss:原理与应用解析》
在数据驱动的时代,高效处理和搜索海量数据至关重要。Faiss 是一个专为大规模相似性搜索和聚类设计的库,擅长处理高维向量数据,广泛应用于文本处理、图像识别等领域。本文深入解析 Faiss 的原理、使用方法及其在图像检索、文本相似性比较和推荐系统中的实际应用,帮助读者掌握这一强大工具,提升数据处理能力。
854 2
|
存储 编译器 C++
【c++】多态(多态的概念及实现、虚函数重写、纯虚函数和抽象类、虚函数表、多态的实现过程)
本文介绍了面向对象编程中的多态特性,涵盖其概念、实现条件及原理。多态指“一个接口,多种实现”,通过基类指针或引用来调用不同派生类的重写虚函数,实现运行时多态。文中详细解释了虚函数、虚函数表(vtable)、纯虚函数与抽象类的概念,并通过代码示例展示了多态的具体应用。此外,还讨论了动态绑定和静态绑定的区别,帮助读者深入理解多态机制。最后总结了多态在编程中的重要性和应用场景。 文章结构清晰,从基础到深入,适合初学者和有一定基础的开发者学习。如果你觉得内容有帮助,请点赞支持。 ❤❤❤
1455 0
|
中间件 开发者
gin框架学习-路由分组和中间件
Logger中间件将日志写入gin.DefaultWriter,即使配置了GIN_MODE=release。
707 99
gin框架学习-路由分组和中间件
|
存储 缓存 负载均衡
图解一致性哈希算法,看这一篇就够了!
近段时间一直在总结分布式系统架构常见的算法。前面我们介绍过布隆过滤器算法。接下来介绍一个非常重要、也非常实用的算法:一致性哈希算法。通过介绍一致性哈希算法的原理并给出了一种实现和实际运用的案例,带大家真正理解一致性哈希算法。
29126 66
图解一致性哈希算法,看这一篇就够了!
|
Java 开发工具 git

热门文章

最新文章