直接运行 ./gradlew build --scan 即可生成交互式 Build Scan 报告,自动分析构建全过程,精准定位性能瓶颈(如慢任务、缓存未命中、高配置耗时)和依赖冲突(多版本共存及路径),并提供修复建议;推荐通过 settings.gradle 或 gradle.properties 全局启用以常态化使用。

直接用 ./gradlew build --scan 就能生成 Build Scan 报告,它会自动分析构建全过程,精准指出性能卡点和依赖冲突位置,不用手动挖日志或猜原因。
快速生成扫描报告
最简单的方式是加一个参数:
- 运行
./gradlew build --scan(或替换成你实际的任务,比如assembleDebug) - 构建完成后,终端会输出一个带有效期的唯一链接(如
https://scans.gradle.com/s/abcd1234) - 打开链接,就能看到交互式可视化报告,无需额外部署
定位性能瓶颈
进入报告后,重点看 “Performance” 标签页:
将后端 Java 接口文档转换为前端 TypeScript 类型定义(interface / type)。输入:飞书文档、Spring Boot 接口文档、Swagger/OpenAPI、手写 API 文档等。输出:包含请求参数与响应结果的 .md 文件,含完整 JSDoc 注释。触发关键词:Java 转 TS、接口转换、生成前端类型、接口文档转 TypeScript、DTO/VO/BO 转 interface、后端文档转前端类型、生成接口类型、类型定义生成。
- “Task Execution” 图表按耗时排序列出所有任务,一眼看出哪个最慢(比如
test或compileJava) - 点击具体任务,可查看是否命中缓存(
FROM-CACHE)、是否重复执行(EXECUTED),判断增量构建是否生效 - “Configuration Time” 显示配置阶段总耗时,若过高,说明
build.gradle中存在大量动态逻辑或插件滥用
识别依赖冲突
切换到 “Dependencies” 标签页:
- 搜索关键库名(如
guava或okhttp),报告会高亮显示多个版本共存的情况 - 点击冲突项,能看到每个版本来自哪个模块、哪条依赖路径(例如
app → lib-a → guava:28.0vsapp → lib-b → guava:31.1) - 报告还会建议修复方式,比如用
resolutionStrategy { force '...' }或exclude
让扫描常态化
避免每次都要手动加参数,推荐在团队中统一启用:
- 在
settings.gradle里添加:gradle.startParameter.buildScan = true - 或在
gradle.properties中设:org.gradle.configuration-cache=true(配合扫描效果更佳) - CI 环境下还可结合
--info输出更多上下文:./gradlew build --scan --info
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










