BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

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

| 作者 Sergio De Simone 关注 13 他的粉丝 ,译者 夏雪 关注 0 他的粉丝 发布于 2015年3月31日. 估计阅读时间: 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

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT