[英]Better way to return value from a Groovy closure in Gradle
下面的代码有效。 它在Gradle中获取所有不同任务组的集合,并将它们打印出来。 我希望有更好的方法来做到这一点。 问题的一部分是我可以访问所有任务的唯一方法是通过all()
方法,该方法具有此签名void all(Closure var1);
由于仅返回一个集合,这非常令人沮丧,我得到了一个可以迭代集合的闭包。
afterEvaluate { Project project ->
def blah = []
project.tasks.all { Object object ->
blah << object.group
}
println blah.unique()
}
我希望有比将值存储在闭包外部定义的变量中更好的方法。 这里的主要问题是,在运行闭包时,我一次只能访问一个组名,并且我想对它们进行唯一性设置,并且由于返回类型为空,因此我无法从all函数返回任何内容。
由于project.tasks是一个集合,您是否尝试过类似
afterEvaluate { Project project ->
println project.tasks.collect { it.group }.unique()
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.