Gradle默认日志简略,需用--info/--debug提升级别或配置org.gradle.logging.level=info,也可用--scan生成可视化报告。

Gradle构建日志太简略,看不到具体任务执行过程
默认情况下,Gradle只显示 EXECUTING 或 BUILD SUCCESSFUL 这类高层状态,关键细节比如哪个 task 耗时最长、哪行脚本触发了依赖下载、甚至失败时的完整堆栈都被折叠了。这不是 Gradle “没输出”,而是它默认启用了静默模式(--quiet 的反向逻辑),需要主动切换日志级别。
用 --info 或 --debug 启动构建
这是最直接有效的方式,无需改配置文件,适合临时排查:
-
./gradlew build --info:显示每个 task 的输入/输出路径、跳过原因(如 UP-TO-DATE)、依赖图简要信息 -
./gradlew build --debug:输出更底层内容,包括 JVM 参数、Gradle 守护进程通信、插件初始化过程、HTTP 请求头(如访问 Maven 仓库时) - 注意:
--debug日志量极大,建议配合grep使用,例如./gradlew build --debug 2>&1 | grep -i "download" - Windows 用户请用
gradlew.bat build --info,不要漏掉.bat
在 gradle.properties 中永久设置日志级别
如果经常需要详细日志,可以在项目根目录的 gradle.properties 里加一行:
org.gradle.logging.level=info
可选值为 quiet、warn、lifecycle(默认)、info、debug。注意这个设置只影响当前项目,不会污染全局。
容易踩的坑:
- 写成
logging.level=info无效 —— 必须是完整键名org.gradle.logging.level - 该配置对
gradle wrapper生效,但对系统级安装的 Gradle(如 SDKMAN! 安装)不生效 - 如果同时命令行传了
--info,它会覆盖gradle.properties的设置
用 --scan 查看结构化构建报告
比纯文本日志更直观:运行 ./gradlew build --scan,构建完成后会输出一个带超链接的 URL(如 https://scans.gradle.com/s/abc123),点开能看到交互式时间轴、任务依赖图、耗时分布、网络请求详情等。
注意:
- 首次使用会提示同意上传数据到 Gradle 官方服务器(可选),本地不存档
- 企业内网环境可能无法访问 scans.gradle.com,此时需自建
Gradle Enterprise实例 -
--scan默认启用--info级别日志,但不会输出--debug那种 JVM 底层细节
真正难调试的问题往往藏在 task 输入变化、增量编译失效或插件 hook 执行顺序里,这时候光看日志还不够,得结合 --info 输出和 build/reports/ 下的 HTML 报告交叉验证。











