原文地址:Creating Build Scans
构建审视是用于开发和维护Gradle构建的重要工具。它为你提供了构建的详细信息,并为你识别构建环境、依赖或性能上存在的问题,同时可以帮你更全面地理解并提升构建过程,也便于与他人的合作。
在Gradle构建运行时,构建审视插件会抓取数据,并将数据传送到构建审视服务端。同时返回一个可被共享的链接,内部包含有用的构建信息。这些信息包含两大类:
- 环境信息,包括操作系统、Java版本和时区
- 构建相关信息,包含使用的插件、任务、测试以及依赖信息
但它不会记录项目的源码和其它第三方库,比如JAR包。
概述
构建审视(Build Scans)是一个构建的可共享和集中记录,可提供对发生事件和原因的深入了解。通过将构建审视(Build Scans)插件应用于项目,可以将构建审视免费发布到https://scans.gradle.com。
所要创建的
本指南将介绍在不进行任何特定地构建脚本修改的情况下发布构建审视。还将学习如何修改构建脚本,以便为给定项目的所有构建启用构建审视。或者,还将修改init脚本以便所有项目启用构建审视。
所需要的
- 可以使用自己的示例项目,也可以使用Gradle提供的示例项目
- 访问互联网
- 访问电子邮件
选择一个示例项目
Gradle可以通过一个简单的Java项目来演示构建审视功能。如果想使用它,clone或者下载位于 https://github.com/gradle/gradle-build-scan-quickstart的仓储库。如果愿意使用自己的项目,可跳过此步骤。
自动应用构建审视插件
从Gradle 4.3开始,可以在构建脚本中启用构建审视,而无需在构建脚本中进行任何其他配置。使用命令行选项–scan发布构建审视时,将自动应用所需的构建审视插件。在构建结束之前,需要在命令行上接受许可协议。以下控制台输出显示了该行为。
$ ./gradlew build --scan
BUILD SUCCESSFUL in 6s
Do you accept the Gradle Cloud Services license agreement (https://gradle.com/terms-of-service)? [yes, no]
yes
Gradle Cloud Services license agreement accepted.
Publishing build scan...
https://gradle.com/s/czajmbyg73t62
这种机制可以非常容易地生成临时的一次构建审视,而无需在构建中配置构建审视插件。如果您需要更细粒度的配置,则可以按照以下各节中所述,在构建或初始化脚本中配置构建审视插件。
在项目的所有构建上启用构建审视
在build.gradle
文件中添加plugins
块 ,如下所示:
plugins {
id 'com.gradle.build-scan' version '1.13' ❶
}
❶ 使用Gradle Plugin Portal上的最新插件版本。
如果已经有一个plugins块,始终先安装构建审视插件。将它添加到任何现有插件下方仍然可以使用,但会遗漏有用的信息。
接受许可协议
为了将构建审视发布到https://scans.gradle.com,需要接受许可协议。这可以在发布时通过命令行临时完成,但也可以在Gradle构建文件中指定,方法是添加以下部分:
buildScan {
licenseAgreementUrl = 'https://gradle.com/terms-of-service'
licenseAgree = 'yes'
}
该buildScan
块允许配置插件。在此设置接受许可协议所需的两个属性。其他属性可用。有关详细信息,请参阅Build Scans用户手册。
发布构建审视
使用带有--scan
标志的命令行发布构建审视。
运行带有--scan
标志的build
任务。构建完成后,将构建数据上传到scans.gradle.com后,将看到一个链接以查看构建审视。
$ ./gradlew build --scan
BUILD SUCCESSFUL in 5s
Publishing build scan...
https://gradle.com/s/47i5oe7dhgz2c
在线访问构建审视
在第一次打开链接时,会提示创建构建审视。
收到的用于激活构建扫描的电子邮件看起来类似于:
按照电子邮件中提供的链接,将看到创建的构建审视。
现在可以浏览构建扫描中包含的所有信息,包括执行任务所需的时间,构建的每个阶段所需的时间,任何测试的结果,使用的插件和其他依赖项,使用的任何命令行开关,以及其他相关信息。
为所有构建启用构建扫描(可选)
使用Gradle初始化脚本可以避免将插件和许可协议必须添加到每个构建。在buildScan.gradle
在目录中创建一个名为~/.gradle/init.d
(~代字符表示Gradle的安装目录)的文件:
initscript {
repositories {
maven { url 'https://plugins.gradle.org/m2' }
}
dependencies {
classpath 'com.gradle:build-scan-plugin:1.13'
}
}
rootProject {
apply plugin: com.gradle.scan.plugin.BuildScanPlugin
buildScan {
licenseAgreementUrl = 'https://gradle.com/terms-of-service'
licenseAgree = 'yes'
}
}
初始化脚本在必要时下载构建审视插件并将其应用于每个项目,并接受许可协议。可以在系统上的任何构建上使用--scan
。
还可以将其他功能添加到脚本中,例如发布审视信息的条件。有关详细信息,请参阅Build Scans用户手册。
概要
在本指南中,您学习了如何:
- 生成构建扫描
- 在线查看构建扫描信息
- 创建一个init脚本以启用所有构建的构建扫描
下一步
其他信息可以在Build Scans用户手册中找到。