宣布 Gradle Enterprise 2017.1
引言
我们很高兴地宣布发布 Gradle Enterprise 2017.1。此版本包含许多新功能和错误修复,进一步扩展了构建扫描为您和您的团队提供的构建洞察力。以下是此版本的一些亮点。如果您有兴趣进行演示或试用,请 联系我们。
轻松查找两次构建之间的依赖项变更 #
构建之间的依赖项变更可能是问题的常见来源。例如,升级一个库的版本可能会无意中将不同版本的传递性依赖项引入到您的项目中。反过来,这些新版本可能会由于与您的项目使用的其他库不兼容而给您带来各种麻烦。
新的构建比较功能允许您快速查找构建之间的依赖项变更,包括传递性依赖项的差异。
您可以轻松选择两个构建进行比较

并快速查看两个构建之间的依赖项差异

使用时间线可视化构建的任务执行情况 #
在尝试加快构建速度时,了解所有进程是否得到有效利用非常有帮助。是否存在优化机会,例如可以将耗时任务拆分成更小的任务并并行运行?要找到这些优化机会,您首先需要识别构建中的瓶颈所在。
新的时间线功能为您提供了构建期间执行的任务的可视化表示。使用此可视化,您可以快速识别构建中的瓶颈任务、构建中可以通过并行运行更多任务来加快执行速度的地方以及其他优化机会。

您还可以按名称/路径、类型等过滤任务,从而轻松检查和突出显示特定任务。
使用 此示例扫描 试用时间线。
查看依赖项下载 #
下载依赖项所花费的时间会对您的构建时间产生重大影响。在“性能”部分中新推出的“网络活动”选项卡显示了由您构建中的依赖项解析触发的所有下载,包括每次下载的大小以及花费的时间。
您可以识别拖慢构建速度的大型或缓慢下载。是否存在来自缓慢远程存储库的下载,您可以将其缓存到本地?或者是否存在不再需要且可以完全删除的大型下载?
此外,您还可以查看构建中的下载总数、总下载大小以及下载的平均下载速度,以快速衡量构建期间的总体网络性能。

此功能需要即将发布的 Gradle 版本 3.5 和构建扫描插件 1.6 或更高版本。
在此 示例扫描 中查看网络活动。
将构建数据与其他系统集成 #
新的导出 API 提供了一种机制,用于消耗为构建扫描提供支持的原始构建数据。它是一个基于服务器发送事件 (SSE) 的 HTTP 接口,支持实时数据集成。对于大多数编程语言,都有用于消耗 SSE 流的库。
下面的视频演示了基于导出 API 构建的实时构建持续时间仪表板。其代码可在 GitHub 上的 gradle-enterprise-export-api-samples 存储库中找到。
查看任务为何无法缓存 #
Gradle 3.3 引入了构建缓存功能,通过重用其他构建的任务输出来节省您的时间,而无需在您的机器上执行任务。要使给定任务能够使用构建缓存,必须满足某些条件。Gradle Enterprise 现在会指示哪些任务可缓存,哪些不可缓存。
为了给您机会使更多任务可缓存并提高构建性能,您可以查看任务未缓存的原因。“性能”部分的“设置和建议”选项卡现在会显示是否存在无法缓存的任务。

在新版时间线视图中,您可以按可缓存和不可缓存的任务进行搜索,还可以查看单个任务为何无法缓存。

此功能需要 Gradle 版本 3.4 和构建扫描插件 1.6 或更高版本。
使用此 示例扫描 试用。
更好地理解任务性能 #
Gradle 可以通过不重新执行不需要再次执行的任务来为您节省构建时间。例如,已经是最新的任务,或者可以从构建缓存中获取输出的任务。
“性能”部分的“任务执行”选项卡汇总了哪些任务已执行,哪些已跳过。此摘要让您了解当前构建的可缓存程度,从而更轻松地通过调整任务以使其可缓存来找到优化机会。您还可以从摘要点击进入时间线,查看特定类别中的所有任务。

使用此 示例扫描 试用。
按标签缺失查找构建 #
您可以使用一个或多个标签来注释构建扫描,以便轻松地对构建进行分类。例如,用于指示在您的持续集成服务器上执行了哪些构建。
以前,您可以查找包含一个或多个特定标签的扫描,现在您也可以进行反向操作——查找不包含特定标签的扫描。为此,请在搜索标签时使用 not: 前缀。例如,如果您使用“CI”标签标记了所有持续集成构建,则可以通过搜索 not:CI 来查找所有非 CI 构建。

有关如何以及何时使用标签的更多信息,请参阅这篇 构建扫描中的自定义数据 博文。
更快地查找构建 #
Gradle Enterprise 使您能够通过按项目名称、开始时间、结果等过滤构建来精确找到所需的构建。随着最新版本的发布,搜索构建扫描现在速度大大提升——尤其是在您搜索大量构建时。这使得查找您所需的构建更加快捷。
立即试用! #
我们希望您和我们一样对这些出色的新功能感到兴奋。立即 联系我们 进行试用!您还可以 查看发行说明 以了解其他新增功能。