宣布 Gradle Enterprise 2017.1

我们很高兴宣布发布 Gradle Enterprise 2017.1。此版本包含许多新功能和错误修复,进一步扩展了构建扫描为您和您的团队提供的构建洞察力。以下是一些此版本的亮点。如果您有兴趣进行演示或试用,请联系我们。 联系我们

轻松查找两个构建之间的依赖项更改

构建之间的依赖项更改可能是问题的常见来源。例如,升级一个库的版本可能会无意中将不同版本的传递依赖项引入您的项目。反过来,这些较新的版本可能会通过破坏与项目使用的其他库的兼容性而给您带来各种挫折。

新的构建比较功能允许您快速查找构建之间的依赖项更改,包括传递依赖项的差异。

您可以轻松地选择两个构建进行比较

Select builds for dependency comparison

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

Dependency comparison

使用时间线可视化您的构建任务执行

当您试图使构建更快时,了解所有进程是否都得到有效利用非常有用。是否存在优化机会,例如可以将长时间运行的任务拆分为更小的任务并并行运行?要找到这些优化机会,您首先需要确定构建中的瓶颈在哪里。

新的时间线功能为您提供了构建期间执行的任务的直观表示。使用此可视化,您可以快速识别构建中的瓶颈任务,构建中可以并行运行更多任务以加快执行速度的位置以及其他优化机会。

Timeline

您还可以按名称/路径、类型等筛选任务,从而可以轻松地检查和突出显示特定任务。

使用 此示例扫描 试用时间线。

查看依赖项下载

下载依赖项所花费的时间会对您的构建时间产生重大影响。“性能”部分中的新“网络活动”选项卡显示了构建中依赖项解析触发的所有下载,包括每个下载的大小以及花费的时间。

您可以识别拖慢构建速度的大型或缓慢下载。是否存在来自缓慢的远程存储库的下载,您可以将其缓存到本地?或者,是否存在构建中不再需要的较大下载,可以完全删除?

此外,您还可以查看构建中的总下载次数、总下载大小以及所有下载的平均下载速度,以快速评估构建期间的整体网络性能。

Network activity

此功能需要即将推出的 Gradle 版本 3.5 和构建扫描插件 1.6 或更高版本。

此示例扫描 上查看网络活动。

将您的构建数据与其他系统集成

新的导出 API 提供了一种机制,用于使用为构建扫描提供支持的原始构建数据。它是一个基于服务器发送事件 (SSE) 的 HTTP 接口,支持实时数据集成。大多数编程语言都提供用于使用 SSE 流的库。

下面的视频演示了基于导出 API 构建的实时构建持续时间仪表板。此代码作为 gradle-enterprise-export-api-samples 存储库的一部分在 GitHub 上提供。

查看为什么任务不可缓存

Gradle 3.3 引入了构建缓存功能,该功能通过重用来自其他构建的任务输出来节省您的时间,而无需在您的机器上执行任务。对于给定任务使用构建缓存,必须满足某些条件。Gradle Enterprise 现在指示哪些任务可缓存,哪些任务不可缓存。

为了让您有机会将更多任务设为可缓存并提高构建性能,您可以查看任务不可缓存的原因。现在,“性能”部分的“设置和建议”选项卡会显示是否有不可缓存的任务。

Not-cacheable tasks suggestion

在新的时间线视图中,您还可以搜索可缓存和不可缓存的任务,以及查看单个任务不可缓存的原因。

Not-cacheable task

此功能需要 Gradle 版本 3.4 及更高版本,以及构建扫描插件 1.6 或更高版本。

您可以使用 此示例扫描 进行尝试。

更好地理解任务性能

Gradle 可以通过不重新执行不需要执行的任务来节省您的构建时间。例如,已经是最新的任务,或者可以从构建缓存中获取输出的任务。

“性能”部分的“任务执行”选项卡总结了哪些任务已执行,哪些任务已避免。该摘要让您了解当前构建的可缓存程度,使您更容易通过调整任务使其可缓存来找到优化机会。您还可以从摘要中点击进入时间线,查看特定类别中的所有任务。

Task execution breakdown

您可以使用 此示例扫描 进行尝试。

通过缺少标签查找构建

您可以使用一个或多个标签对构建扫描进行注释,以便轻松地对构建进行分类。例如,指示哪些构建是在您的持续集成服务器上执行的。

以前您可以找到具有一个或多个特定标签的扫描,现在您还可以进行反向操作 - 找到没有特定标签的扫描。为此,在搜索标签时使用 not: 前缀。例如,如果您使用“CI”标签标记所有持续集成构建,则可以通过搜索 not:CI 来查找所有非 CI 构建。

Negative tag filtering

有关如何在何时使用标签的更多信息,请参阅此 构建扫描中的自定义数据 文章。

更快地查找构建

Gradle Enterprise 使您能够通过按项目名称、开始时间、结果等筛选构建来准确找到所需的构建。在最新版本中,搜索构建扫描的速度快得多 - 特别是在搜索大量构建时。这使得更快地找到您要查找的构建变得更加容易。

立即尝试!

我们希望您和我们一样对这些很棒的新功能感到兴奋。 联系我们 今天开始试用!您也可以 查看发布说明 了解其他新功能。

讨论