Gradle Enterprise 2017.1发布——新版本亮点介绍

230 阅读5分钟

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

轻松找到两个构建之间的依赖关系的变化

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

新的构建比较功能允许你快速找到构建之间的依赖性变化,包括过渡性依赖的差异。

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

image.png

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

image.png

用可视化你的构建任务的执行情况

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

新的时间线功能为你提供了一个在构建过程中执行的任务的可视化表示。使用这种可视化的方式,你可以快速识别构建中的瓶颈任务,构建中可以通过并行运行更多任务来加快执行速度的地方,以及其他优化机会。

image.png

你还可以按名称/路径、类型等过滤任务,使之易于检查和突出特定的任务。

这个扫描例子试试时间线。

查看依赖性下载

下载依赖项所花的时间对你的构建时间有很大影响。性能 "部分中新的 "网络活动 "选项卡显示了在你的构建中由依赖性解析触发的所有下载,包括每个下载的大小和花费的时间。

你可以识别拖累你构建速度的大的或慢的下载。是否有来自缓慢的远程仓库的下载,你可以在现场进行缓存?或者在你的构建中不再需要的大型下载,可以完全删除?

此外,你还可以看到构建中的总下载量、总下载量以及各次下载的平均下载速度,以快速衡量构建期间的整体网络性能。

image.png

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

请看这个扫描例子中的网络活动。

将你的构建数据与其他系统整合

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

查看为什么一个任务不能被缓存

Gradle 3.3引入了构建缓存功能,它通过重复使用其他构建的任务输出来节省你的时间,而不需要在你的机器上执行该任务。要让某个任务使用构建缓存,必须满足某些条件。Gradle Enterprise现在会指出哪些任务是可缓存的,哪些是不可缓存的。

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

image.png 在新的时间轴视图中,你可以搜索可缓存和不可缓存的任务,也可以看到单个任务不可缓存的原因:

image.png

这个功能需要Gradle 3.4版本和1.6或更高版本的构建扫描插件:

这个扫描例子试试吧。

更好地了解任务性能

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

性能 "部分的 "任务执行 "选项卡总结了哪些任务被执行了,哪些被避免了。这个总结可以让你了解你的构建目前的缓存情况,使你更容易通过调整任务来找到优化机会,使它们成为可缓存的。你也可以从摘要中点击进入时间线,查看某个特定类别的所有任务。

image.png这个扫描的例子试试吧。

通过没有标签来查找构建

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

以前你可以找到有一个或多个特定标签的扫描,现在你也可以反过来做--找到没有特定标签的扫描。要做到这一点,在搜索标签时使用not: 前缀。例如,如果你用 "CI "标签标记所有的持续集成构建,你可以通过搜索not:CI 找到所有非CI的构建。

image.png

关于如何以及何时使用标签的更多信息,请参见构建扫描中的自定义数据一文。

更快地找到构建

Gradle Enterprise让你能够通过按项目名称、开始时间、结果等过滤构建,准确找到你需要的构建。在最新的版本中,搜索构建扫描现在更快——特别是当你在大量的构建中搜索时。这使得你能更快地准确找到你要找的构建。

今天就试试吧!

我们希望你和我们一样对这些伟大的新功能感到兴奋。今天就联系我们进行试用吧!你也可以查看发行说明,看看还有哪些新功能。