以下代码有效。它在Gradle中获取所有不同任务组的集合,并将它们打印出来。我希望有更好的方法来做到这一点。问题的一部分是我可以访问所有任务的唯一方法是通过具有该签名all()
的{{1}}方法,由于仅返回一个集合,这非常令人沮丧,我得到了一个可以迭代的闭包集合。
void all(Closure var1);
我希望有比将值存储在闭包外部定义的变量中更好的方法。这里的主要问题是,在运行闭包时,我一次只能访问一个组名,并且我想对它们进行唯一性设置,并且由于返回类型为空,因此无法从all函数返回任何内容。
答案 0 :(得分:2)
由于project.tasks是一个集合,您是否尝试过
afterEvaluate { Project project ->
println project.tasks.collect { it.group }.unique()
}