开源构建与测试工具Bazel终于发布了1.0版本,Bazel原本为Google内部使用的工具,在2015年的时候对外发布Alpha版本,经过了多年开发终于发布了第一个正式版本。Bazel是类似于Make、Maven和Gradle等构建工具,使用高端人类可读的构建语言,具有跨平台跨语言的特性,并提供高度可扩展性。
Bazel采用了高端构建语言,以抽象、人类可读的语言,描述项目构建属性,Google提到,与其他工具不同的是,Bazel的运行利用了函数库、脚本和数据集的概念,开发者不需要对编译器或是连接器,撰写复杂的个别调用。Bazel构建的速度很快,因为Bazel会缓存之前已经完成的工作,并关注文件内容和构建命令的改变,未来当项目需要重新构建的时候,Bazel仅会重建更改的部分,开发者还可以使用高度平行化与渐增编译功能,进一步加速项目编译的速度。
支持多平台与多语言让Bazel成为一个非常灵活的工具,Bazel可以用同一个项目,为多个平台包括桌面、服务器和移动设备,构建二进制文件以及可部署的组件,Bazel支持Java、C++、Android、iOS以及Go等各种语言平台,而操作系统则支持Linux、macOS和Windows,无论是哪一种目标语言与平台组合,开发者都可以用单一命令来构建和测试整项目个源码树。
Google将Bazel设计成高度可扩展的架构,即便处理超过10万个源码文件,Bazel仍然能维持极高地效率,对于采用持续集成的企业,Bazel可同时处理多个程序代码存储库,或是单一但庞大的存储库,能支持数万用户基础,Bazel还可以进行分布式远程执行以及缓存服务。
1.0版本主要有三个更新,第一是开始使用语义版本控制,每个重大版本更新中间至少间隔三个月,每个月都会有次要版本更新,第二则是提供长期支持版本,第三则是更全面支持Angular、Android、Java以及C++,添加功能包括远程执行与缓存、标准组件管理器以及第三方相依项目。
目前Google的多项大型开源项目包括Angular和TensorFlow都已经使用Bazel,用户报告切换使用Bazel之后,测试时间减少3倍,且构建速度提高了10倍。
领取专属 10元无门槛券
私享最新 技术干货