从Gradle中的Groovy闭包返回价值的更好方法

时间:2019-07-10 04:58:27

标签: gradle groovy

以下代码有效。它在Gradle中获取所有不同任务组的集合,并将它们打印出来。我希望有更好的方法来做到这一点。问题的一部分是我可以访问所有任务的唯一方法是通过具有该签名all()的{​​{1}}方法,由于仅返回一个集合,这非常令人沮丧,我得到了一个可以迭代的闭包集合。

void all(Closure var1);

我希望有比将值存储在闭包外部定义的变量中更好的方法。这里的主要问题是,在运行闭包时,我一次只能访问一个组名,并且我想对它们进行唯一性设置,并且由于返回类型为空,因此无法从all函数返回任何内容。

1 个答案:

答案 0 :(得分:2)

由于project.tasks是一个集合,您是否尝试过

afterEvaluate { Project project ->
    println project.tasks.collect { it.group }.unique()
}