原文地址: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 --scanBUILD SUCCESSFUL in 6sDo 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 --scanBUILD SUCCESSFUL in 5sPublishing 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.BuildScanPluginbuildScan {licenseAgreementUrl = 'https://gradle.com/terms-of-service'licenseAgree = 'yes'}
}

初始化脚本在必要时下载构建审视插件并将其应用于每个项目,并接受许可协议。可以在系统上的任何构建上使用--scan

还可以将其他功能添加到脚本中,例如发布审视信息的条件。有关详细信息,请参阅Build Scans用户手册。

概要

在本指南中,您学习了如何:

  • 生成构建扫描
  • 在线查看构建扫描信息
  • 创建一个init脚本以启用所有构建的构建扫描

下一步

其他信息可以在Build Scans用户手册中找到。

Gradle教程和指南 - 构建审视相关推荐

  1. gradle中的增量构建

    文章目录 简介 增量构建 自定义inputs和outputs 运行时API 隐式依赖 输入校验 自定义缓存方法 输入归一化 其他使用技巧 简介 在我们使用的各种工具中,为了提升工作效率,总会使用到各种 ...

  2. Android官方技术文档翻译——Gradle 插件用户指南(5)

    昨晚把第五章未译完的几句话攻克了.只是第六章没怎么译,明后天又是周末,假设周一前第六章翻译完的话,周一再发第六章. 本文译自Android官方技术文档<Gradle Plugin User Gu ...

  3. Centos上使用Jenkins配合Gradle进行Android APK构建和分发

    Centos上使用Jenkins配合Gradle进行Android APK构建和分发 很多时候,测试人员和后台人员需要我们将各个环境APK包发给他们进行测试和调试,但是呢,我们不是时时都能响应他们的需 ...

  4. 基于安卓软件开发的Gradle教程

    基于安卓软件开发的Gradle教程 Gradle for Android Training Course Thursday, March 05, 2015 8:30 AM - 12:30 PM (Pa ...

  5. gradle插件用户指南(翻译)

    gradle插件用户指南(翻译) http://www.open-open.com/lib/view/open1428320744713.html gradle属性文件详解(英文): https:// ...

  6. Java8新特性教程 - 终极指南

    转载来源:https://www.javacodegeeks.com/2014/05/java-8-features-tutorial.html Java 8 新特性教程 - 终极指南 编者按:在这篇 ...

  7. 分子动力学模拟软件_分子模拟软件Discovery Studio教程(十三):构建PLS模型(3D-QSAR)...

    Discovery Studio™ (简称DS)是专业的生命科学分子模拟软件,DS目前的主要功能包括:蛋白质的表征(包括蛋白-蛋白相互作用).同源建模.分子力学计算和分子动力学模拟.基于结构药物设计工 ...

  8. Android Gradle进阶配置指南

    简单的总结一下gradle: 1.Gradle是一种构建工具,它可以帮你管理项目中的差异,依赖,编译,打包,部署......你可以定义满足自己需要的构建逻辑,写入到build.gradle中供日后复用 ...

  9. Android Gradle进阶配置指南 1

    简单的总结一下gradle: 1.Gradle是一种构建工具,它可以帮你管理项目中的差异,依赖,编译,打包,部署......你可以定义满足自己需要的构建逻辑,写入到build.gradle中供日后复用 ...

最新文章

  1. 在grub中添加win7(以及从win7来的win10)的启动项
  2. 使用 Sphinx 撰写技术文档并生成 PDF 总结
  3. 珍惜相聚,亦珍惜离别
  4. C++字符串的格式化
  5. 利用DBMS_ADVISOR.TUNE_MVIEW包生成物化视图创建语句
  6. 汇编语言-010(循环移位ROL,ROR 、进位循环进位RCL,RCR 、有符号数溢出 、双精度移位SHLD,SHRD、SHL和ADD计算 、位运算应用)
  7. 解决:ClassNotFoundException: com.netflix.hystrix.contrib.javanica.aop.aspectj.HystrixCommandAspect
  8. (08)Verilog HDL同步复位
  9. 4.15_strategy_行为型模式:策略模式
  10. SpringBoot两种定时任务(Spring Schedule 与 Quartz 整合 )实现
  11. 硬笔行书字帖3500常用字_练字的字帖怎么选择?(硬笔)
  12. JavaEE下宠物领养网站的设计与实现
  13. Hexo博客与Next主题的高级应用
  14. [转]Phoenix综述(史上最全Phoenix中文文档)
  15. 使用iperf测试网络速度--windows
  16. 视频号直播与抖音快手直播有哪些区别呢?
  17. vue不具名插槽与具名插槽
  18. 使用ccache大幅度加速gcc编译速度
  19. 隐写术之实验吧--小苹果
  20. 免杀的N种姿势-msf篇

热门文章

  1. 《胡适文存》胡适的读书方法
  2. 前端知识解构脑图(一张)和工具
  3. Chrome浏览器自带翻译功能不能使用了?看我的解决方法
  4. 【tokio】watch
  5. android wifi 图标,android wifi信号强度与图标对应关系
  6. 如何隐藏table 中的指定列?
  7. 在本计算机无法启动用友通服务器,用友T3客户端提示用友通服务没有启动?
  8. 中介者(Mediator)
  9. Python:绘制动态地图-pyecharts
  10. 操作 Windows7 任务栏的快捷方式