【发布时间】:2017-08-13 16:54:37
【问题描述】:
所以我正在尝试将所有 gradle 任务的列表写入文件。我当然可以为此使用tasks 命令,但我希望每次调用任何 other gradle 命令时都将其缓存到文件中。因此,每当我运行 ./gradlew build 时,我都希望将可用任务写入文件。
这看起来很简单,我写了下面的任务来尝试一下:
task cacheTasks() {
doLast {
allprojects { p ->
p.tasks*.each { t ->
println(p.name + ":" + t.name)
}
}
}
}
问题是,我只得到所有可用任务的子集。当我运行./gradlew tasks --all 命令时,会打印更多内容。当我遍历它时,似乎没有任何内置任务(如build、clean 或help)在tasks* 列表中,但奇怪的是我可以参考他们直接:
tasks.build { t ->
println("DEBUG:" + t.name)
}
看起来很简单,但我一直在徒劳地寻找解决方案。我什至尝试查看 gradle 源代码以了解 tasks 任务是如何工作的,但我找不到任何关于为什么这不起作用的线索。
【问题讨论】:
标签: gradle groovy build.gradle