如何一次性批量配置多个Gradle任务以避免重复编写相同配置?
实现批量配置多个Gradle任务的正确方法
错误原因
tasks.named API 仅支持传入单个任务名作为参数,返回对应单个任务的配置提供者,不支持同时传入多个任务名批量选中,因此你之前的多参数写法不符合API规范无法生效。
Groovy DSL 正确实现(对应你当前使用的build.gradle语法)
把需要配置的任务名放到列表中遍历即可,写法如下:
// 定义需要统一配置的任务名列表,遍历执行相同配置 ['test', 'compileTestJava', 'jar', 'build'].each { taskName -> tasks.named(taskName).configure { dependsOn customTask } }
这种写法和你原来分开写的效果完全一致,同时解决了代码冗余的问题。
补充说明
如果你的项目使用Kotlin DSL(build.gradle.kts),对应写法如下:
listOf("test", "compileTestJava", "jar", "build").forEach { taskName -> tasks.named(taskName) { dependsOn("customTask") } }
内容的提问来源于stack exchange,提问作者lucasvw
相关产品推荐
相关产品推荐

