Gradle的Build Scans是什么功能?
Posted 移动开发前线
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Gradle的Build Scans是什么功能?相关的知识,希望对你有一定的参考价值。
(Build Scans是Gradle首页重点推荐的功能。)
2016年8月份,Gradle团队发布了Gradle 3.0版本,同时,引入了Gradle云服务(Gradle Cloud Services)。该服务“通过为Gradle构建工具增加新功能,并从新的角度分析你或你团队项目构建的过程,来提升自动化构建的效率和生产力”。其中第一个提供的云服务是Build Scans功能,该功能为免费功能。
在Gradle Build Scans功能用户手册中是这样定义的:
Build Scans是用于开发和维护Gradle构建的重要工具。它为你提供了构建的详细信息,并为你识别构建环境、依赖或性能上存在的问题,同时可以帮你更全面地理解并提升构建过程,也便于与他人的合作。
在Gradle构建运行时,Build Scans插件会抓取数据,并将数据传送到Build Scans服务端。同时返回一个可被共享的链接,内部包含有用的构建信息。这些信息包含两大类:
- 环境信息,包括操作系统、Java版本和时区
- 构建相关信息,包含使用的插件、任务、测试以及依赖信息
但它不会记录项目的源码和其artifacts,比如JAR包。
要为一个现存的Gradle项目增加Build Scans功能,需要在build.gradle文件中增加如下配置:
plugins {
id 'com.gradle.build-scan' version '1.3'
id 'java'}
buildScan {
licenseAgreementUrl = 'https://gradle.com/terms-of-service'
licenseAgree = 'yes'
tag 'SAMPLE'
link 'GitHub','https://github.com/gradle/gradle-build-scan-quickstart'
}
构建项目时,在命令行中增加-Dscan开关,就会触发Build Scans:
$ gradle build -Dscan
在一系列简单的激活操作后,项目的构建信息就可以在线被查看了,还可以通过永久链接分享给其他开发者。这使开发者之间可以互相协作,并更快地解决问题或评估构建的性能。
如果一个项目在单元测试阶段失败或源码存在错误,Build Scans的结果会像如下例子所示:
相反,如果项目通过了全部单元测试,且构建成功,则Build Scans的结果会像下面的例子所示:
在以上任意情况下,都可以交互式地查看详细信息。其中还列出了各部分的构建耗时,用户可以使用这些信息来监控其性能。
在GitHub上可以找到完整的示例项目:
https://github.com/mpredli01/count
诸多知名开源项目,如Hibernate、JUnit 5、Ratpack,在开发各自项目时都使用上了Gradle的Build Scans功能。
InfoQ采访了Gradle公司的市场主管,前Gradle团队首席工程师Chris Beams,它对Build Scans能给开发者带来什么,是这样解释的:
我们很高兴地看到整个社区,包括各开源项目维护者和用户,对Build Scans功能的反应。Build Scans的好处是每个人可以在任何时刻创建它,并分享给任何人。我们认为公开的Build Scans为用户在需要解释Gradle构建的具体过程时提供了便利,比如在Stack Overflow或GitHub上描述问题时,以及在与同事之间的交流中。欢迎大家都来尝试一下,Build Scans功能用户手册是用于起步的绝佳教程。
Build Scans功能用户手册: https://docs.gradle.com/scans
活动推荐:
QCon是由InfoQ主办的全球顶级技术盛会,每年在伦敦、北京、东京、纽约、圣保罗、上海、旧金山召开。
QCon北京2017将于4月16日~18日在北京·国家会议中心举行,精心设计了支撑海量业务的互联网架构、大规模网关系统、微服务实践、快速进化的容器生态、智能化运维、互联网广告系统实践、大数据实时计算与流处理和金融科技转型与未来等30来个专题,涵盖架构、大数据、云计算、移动、前端、人工智能等热点领域,将邀请来自Google、Facebook、阿里巴巴、腾讯、百度、美团点评、爱奇艺等典型互联网公司的技术专家,分享技术领域最新成果。敬请期待。
点击阅读原文进入大会官网。
以上是关于Gradle的Build Scans是什么功能?的主要内容,如果未能解决你的问题,请参考以下文章
Android 安装包优化使用 lib7zr.so 动态库处理压缩文件 ( 拷贝 lib7zr.so 动态库到 Android Studio 工程 | 配置 build.gradle 构建脚本 )(代
Android:如何在build.gradle中获取资源字符串以支持多种语言的多种口味?
com.android.builder.errors.EvalIssueException: android-apt plugin is incompatible with the Android(代