./gradlew help --task 可查指定任务的详细用法,输出含 description、group、options 三部分;需拼写准确、大小写敏感,多模块须带路径前缀(如 :app:assemblerelease),避免仅依赖 tasks 的简略列表。

用 help 任务查某个 task 的具体用法
Gradle 内置了 help 任务,专门用来解释其他 task 的作用、参数和使用方式。它比翻文档或猜命令靠谱得多。
执行命令:./gradlew help --task <taskname></taskname>(Linux/macOS)或 gradlew help --task <taskname></taskname>(Windows)
-
<taskname></taskname>必须拼写准确,大小写敏感,比如assembleDebug不能写成assembledebug - 如果 task 属于某个子模块(如
app),要带上路径:./gradlew help --task :app:assembleRelease - 输出里会明确标出「Description」、「Group」、「Options」三块——重点看 Options,里面列出了所有可用的命令行参数(如
--no-daemon、--stacktrace是否被该 task 支持)
为什么直接跑 tasks 不够用
./gradlew tasks 只显示 task 名称和简短描述,不告诉你怎么传参、哪些 flag 有效、是否支持增量执行。比如你看到 build,但不知道它默认是否包含测试;看到 assemble,但不确定它会不会触发 lint 检查。
常见误判场景:
- 以为
assemble和build完全等价——其实build还会执行check组下的任务(如test、lint),而assemble不会 - 对
clean加了--dry-run以为能预览删除内容——但clean不支持--dry-run,这个 flag 只对部分 task 生效,help --task clean才能确认 - 在多模块项目里只查根项目的
tasks,漏掉子模块里同名但行为不同的 task(如:feature:assemble可能和根项目的assemble完全无关)
查不到任务?先确认它是否存在
有时 help --task xxx 报错说「Task 'xxx' not found」,不一定是拼错了,更可能是:
- 该 task 没有被注册进当前 project 的构建脚本(比如只在
build.gradle.kts里定义了,但你当前在父目录执行命令) - 它属于某个插件,但插件没正确 apply(例如
androidx.navigation的generateSafeArgstask,必须在启用 Navigation Safe Args 插件后才出现) - 你用了
--no-build-cache或离线模式,导致某些动态生成的 task 未加载(可临时关掉离线模式再试) - Gradle 版本太低,不支持该 task(比如
validateSigning在 AGP 8.0+ 才稳定提供)
实际调试建议:从 tasks --all 入手定位
当不确定 task 名或分组时,先运行:./gradlew tasks --all | grep -i "assemble"(Linux/macOS)或 ./gradlew tasks --all 后用 Ctrl+F 搜关键词。
--all 会列出所有 task(包括隐藏的、带冒号前缀的、生命周期 task),比如你能看到:
-
:app:assembleDebug(模块级) -
assemble(根项目聚合 task) -
assembleSources(非标准 task,可能来自某插件)
拿到完整名称后,再用 help --task 查它的细节——这是最稳的链路,避免凭印象瞎试。
容易被忽略的一点:Gradle 的 task 名不是全局唯一的,同一个名字在不同模块里可能是完全不同的实现,所以路径前缀(如 :app:)不是可选的装饰,而是执行精度的关键。











