Appearance
构建扫描(Build Scan)
Build Scan 是 Gradle 提供的构建分析服务,上传构建数据到云端,提供可视化的构建性能分析报告。
生成构建扫描
bash
# 构建时加上 --scan
./gradlew build --scan
# 构建结束后会提示:
# Publishing build scan...
# https://gradle.com/s/abc123xyz ← 点击链接查看报告自动发布(推荐)
kotlin
// settings.gradle.kts
plugins {
id("com.gradle.develocity") version "3.16.2"
}
develocity {
buildScan {
publishing.onlyIf { true } // 始终发布
termsOfUseUrl.set("https://gradle.com/terms-of-service")
termsOfUseAgree.set("yes")
}
}企业版(Gradle Enterprise)
企业内部可以部署 Gradle Enterprise 服务器:
kotlin
develocity {
server = "https://ge.example.com"
buildScan {
publishing.onlyIf { true }
// 自动推送,不需要手动同意条款
}
}Build Scan 提供的信息
性能分析
- 每个任务的执行时间
- 串行 vs 并行执行时间线
- 缓存命中率
- 配置时间 vs 执行时间
依赖分析
- 完整的依赖树
- 版本冲突可视化
- 依赖解析时间
测试分析
- 测试结果总览
- 失败的测试详情
- 测试执行时间分布
构建失败诊断
- 完整的错误堆栈
- 失败任务的输入/输出
常用标签(自定义数据)
kotlin
develocity {
buildScan {
// 添加自定义标签
tag("CI")
tag(System.getenv("BRANCH_NAME") ?: "local")
// 添加自定义链接
link("GitLab", "https://gitlab.example.com")
// 添加自定义值
value("buildReason", System.getenv("BUILD_REASON") ?: "manual")
value("gitCommit", providers.exec {
commandLine("git", "rev-parse", "--short", "HEAD")
}.standardOutput.asText.get().trim())
}
}