gradle 的 buildscan 功能可生成可视化构建分析报告,用于定位编译慢、依赖冲突等问题;需通过 gradle.properties 或 --scan 参数启用,首次使用需同意条款并获取扫描链接,支持公网或企业内网部署。

Gradle 的 buildScan 功能能自动生成可视化、可分享的构建分析报告,帮你快速定位编译慢、依赖冲突、任务重复执行等问题。它不是独立插件,而是 Gradle 内置的构建扫描(Build Scan)服务,需显式启用并上传到 scans.gradle.com(官方免费)或自建企业版。
启用 Build Scan 的两种方式
推荐在项目根目录的 gradle.properties 或命令行中开启,避免提交敏感配置:
-
全局启用(推荐):在
~/.gradle/gradle.properties添加一行:org.gradle.configuration-cache=true(可选优化)org.gradle.build.scan=true -
单次构建启用:运行时加参数:
./gradlew build --scan或./gradlew assemble --scan
首次使用需接受服务条款
第一次执行带 --scan 的命令时,Gradle 会提示你确认是否同意 Gradle Build Scan Terms of Service。输入 yes 后,扫描数据将自动上传,并在终端末尾输出一个类似 https://www.php.cn/link/43eb1f2bff3fcff5f17558b6ce1c6103/s/abcd1234efgh 的链接。
该链接打开后就是交互式报告页面,含构建时间线、任务耗时分布、依赖图谱、JVM 参数、环境信息等。
关键分析维度怎么看
打开扫描报告后重点关注这几个标签页:
-
Performance:看「Task execution」柱状图,识别最耗时的任务(如
compileJava、processResources);点开任务可查看具体耗时、输入输出、是否被缓存 - Dependencies:检查「Dependency insight」和「Dependency versions」,发现版本冲突、重复引入、未使用的依赖
-
Build cache:确认是否命中远程构建缓存(Remote build cache),若「Cacheable」任务大多显示
FROM-CACHE,说明缓存生效 -
Configuration:查看脚本执行耗时(Configuration time),过高说明
build.gradle里写了太多运行时逻辑,应移到 task 中
企业内网或私有部署支持
如果公司不允许上传到公网,可以部署 Gradle Enterprise(商业版),然后在 gradle.properties 配置:
org.gradle.build.scan.enterprise.url=https://your-ge-server.com org.gradle.build.scan.publish=true
这样所有 --scan 构建都会发往内部服务器,权限、审计、长期归档都可控。
不复杂但容易忽略:只要加个 --scan,就能获得远超命令行日志的深度洞察。日常开发、CI 构建、性能调优都值得养成这个习惯。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











