11 月 19 - 20 日 Apache Pulsar 社区年度盛会来啦,立即报名! 了解详情
写点什么

谷歌构建工具 Bazel 现在开源了

  • 2015-03-30
  • 本文字数:962 字

    阅读完需:约 3 分钟

Bazel ,谷歌用来构建大多数软件的工具,现在已经部分开源了。谷歌声称,Bazel 的目标是构建“快速并可靠的代码”,并且能“随着公司的成长持续调整其软件开发实践”。

在 Bazel 之前,谷歌使用的软件构建工具是 Makefiles。它往往过于厚重,结果形成了“缓慢且不可靠的构建”。此外,与 Makefiles 相比,Bazel 还提供了更高层次的概念,比如“Java 测试”、“C++ 库”,以及“目标平台”和“主机平台”等等。

这个层次的概念是由 BUILD 提供的,它是一种“把项目描述成一组小的有关联的类库、二进制文件和测试”的语言。可以看看以下示例简单地了解一下 BUILD 文件的写法:

复制代码
package(default_visibility = [“//visibility:public”])
cc_library(
name = "hello-lib",
srcs = ["hello-lib.cc"],
hdrs = ["hello-lib.h"],
)
cc_binary(
name = "hello-world",
srcs = ["hello-world.cc"],
deps = [":hello-lib"],
)
cc_test(
name = "hello-success_test",
srcs = ["hello-world.cc"],
deps = [":hello-lib"],
)

Bazel 能够带来很多的好处,谷歌特别强烈了其中的两点:

  • 效率,这要得益于它实际上只重新编译那些必要的文件,也会跳过那些不必去执行的测试。
  • 结果的重现,确保无论是“增量还是重新完整构建、笔记本电脑还是持续集成系统”结果都不会有偏差。

为了满足谷歌自己的需求,Bazel 可以成为具有任意组合特征的项目的特定套件,这些特征包括:具有大型的、共享的数据库;支持多个平台;以多种语言写成;具有大量的测试套件等。

值得一提的是,Bazel 将不会完全地开源。的确是这样,谷歌声称,“我们有大量代码未开源;按规则来算,此时此刻只开源了10% 吧。”谷歌将实施如此的政策是发现了这么一种情况,那就是核心贡献者组织会积极地投身于Bazel,而“外围贡献者对项目的支持比较有限,只会贡献一些零零散散的变更。”

InfoQ 与 Bazel 的核心贡献者组织取得了联系,向他们了解以下相关的问题,使用 Bazel 预计会得到怎样的速度提升?与近来其他的竞争对手(比如 Facebook 的 Buck 和 Pants)相比,你们未来会提供哪些与众不同的特性吗?在他们回应之后我们将发出后续的报道。

Bazel 可以运行于基于 Linux 的系统和 OS X,但它目前尚未不支持 Windows,而且谷歌“现在尚未打算为此投入力量”,直到它成为主要目标为止。

查看英文原文 Bazel: Google Build Tool is now Open Source

2015-03-30 06:554997

评论

发布
暂无评论
发现更多内容

从零开始学习ThingJS之创建/销毁物体

森友小锘

JavaScript 3D 3D可视化 数字孪生

不愧是Alibaba技术官,Kafka的精髓全写这本“限量笔记”里,服了

Java 大数据 架构 面试

文本分析基本流程

Qien Z.

文本分析 5月日更

五分钟开发属于你自己的代码生成器

蛋先生DX

node.js 效率工具 生成代码 JavaScrip

腾讯云大神亲码“redis深度笔记”,字字珠玑,全是精华

Java 程序员 架构 面试

从外包到拿下阿里offer,这2年5个月13天到底发生了什么?

Java 程序员 架构 面试

第五课作业

杰语

思想与落地

型火🔥

架构 分布式 微服务 哲学

「信创」风口,国产数据库的新机遇

CloudQuery社区

数据库 数据安全 dba 数据库管理 tdsql

dubbo-go v3 版本 go module 踩坑记

阿里巴巴云原生

容器 开发者 云原生 中间件 dubbogo

“四大模型”革新NLP技术应用,揭秘百度文心ERNIE最新开源预训练模型

百度大脑

开源 nlp

5分钟速读之Rust权威指南(十三)

码生笔谈

rust

简单又灵活的权限设计?

蛋先生DX

数据库设计 权限系统 权限 权限架构 rbac

Serverless Devs 的官网是如何通过 Serverless Devs 部署的

阿里巴巴云原生

Serverless 开发者 运维 云原生 存储

暑期 2021 | Serverless Devs 最全项目申请攻略来啦!

阿里巴巴云原生

开源 Serverless 开发者 云原生 活动

阿里云携手 VMware 共建云原生 IoT 生态,聚开源社区合力打造领域标准

阿里巴巴云原生

阿里云 容器 开发者 云原生 k8s

新生代小鲜肉之代码生成器

蛋先生DX

node.js 效率工具 自动化 生成代码

99% 的同学写不出好代码,都是因为这个问题!

程序员鱼皮

Java c++ Python 自学编程 经验分享

刚刚接触视频剪辑,怎么快速剪视频?

奈奈的杂社

人生算法:愿景,设计人生导航系统

石云升

读书笔记 愿景 5月日更

iOS基础原理题目汇总

程序员 面试 iOS 知识体系

量化马丁策略系统搭建,网格策略交易系统

大数据采集和常见问题

数据社

大数据 数据采集 5月日更

唵嘛呢叭咪吽|靠谱点评

无量靠谱

不含敌意的坚决|靠谱点评

无量靠谱

持续测试 | DevOps 时代的高效测试之钥

CODING DevOps

DevOps 持续测试 迭代式测试

公安重点人员情报研判分析系统,可视化大屏系统

深入剖析 MySQL 自增锁

SH的全栈笔记

MySQL 数据库

促成“零碳”社会的全面实现,华为云让技术更有温度

xiaotan

华为云

谷歌构建工具Bazel现在开源了_开源_Sergio De Simone_InfoQ精选文章