如何仅打印build.gradle中自定义声明的Gradle任务?
只列出Gradle自定义任务的几种方法
嘿,太懂你这种烦恼了——gradle tasks一跑出来,满屏都是Gradle自带的默认任务,找自己写的自定义任务简直像大海捞针。下面给你几个实用的解决办法:
方法1:给自定义任务分组(最推荐)
先给所有自定义任务统一分配一个专属分组,比如叫"Custom Tasks",这样就能精准过滤了。
在build.gradle里给任务加group属性:
task deployToStaging { group = "Custom Tasks" description = "Deploy app to staging environment" // 你的任务逻辑... } task generateReport { group = "Custom Tasks" description = "Generate monthly performance report" // 你的任务逻辑... }
然后在命令行执行:
gradle tasks --group "Custom Tasks"
这样就只会显示你自己分组的任务,干净利落!
方法2:用Gradle命令直接过滤(无需修改build.gradle)
如果不想改脚本,直接用Gradle的Groovy API在命令行过滤任务。执行这条命令:
gradle -q "tasks.findAll { task -> // 筛选条件:没有分组(自定义任务默认无group)或者分组是你自己定义的 !task.group || task.group == 'Custom Tasks' }.each { println it.name }"
解释一下:
-q是静默模式,避免输出多余的日志tasks.findAll遍历所有任务,只保留符合条件的自定义任务- 最后打印任务名称
如果你的自定义任务都没设group,也可以简化成:
gradle -q "tasks.findAll { !it.group }.each { println it.name }"
方法3:写一个专属任务来列出自定义任务
在build.gradle里添加一个专门的任务,用来筛选并打印你的自定义任务:
task listMyTasks { doLast { println "My Custom Tasks:" tasks.findAll { task -> // 排除Gradle自带的任务组,你可以根据自己用的插件调整这个列表 !["Build", "Verification", "Help", "Documentation", "Application"].contains(task.group) }.each { task -> println "- ${task.name}: ${task.description ?: 'No description'}" } } }
之后只要执行这条命令就能看到所有自定义任务了:
gradle listMyTasks
内容的提问来源于stack exchange,提问作者Andrii Lisun
相关产品推荐
相关产品推荐

