gradle - 从 Gradle 中的 Groovy 闭包返回值的更好方法
问题描述
下面的代码有效。它获取 Gradle 中所有不同任务组的集合并将它们打印出来。我希望有更好的方法来做到这一点。部分问题是我可以访问所有任务的唯一方法是通过all()
具有此签名的方法,这void all(Closure var1);
非常令人沮丧,因为仅返回一个集合,我得到一个可以迭代集合的闭包。
afterEvaluate { Project project ->
def blah = []
project.tasks.all { Object object ->
blah << object.group
}
println blah.unique()
}
我希望有比将值存储在闭包外部定义的变量中更好的方法来做到这一点。这里的主要问题是,当闭包运行时,我一次只能访问一个组名,并且我想使它们唯一,并且我不能从 all 函数返回任何东西,因为返回类型是 void。
解决方案
由于 project.tasks 是一个集合,您是否尝试过类似的东西
afterEvaluate { Project project ->
println project.tasks.collect { it.group }.unique()
}
推荐阅读
- spring-mvc - 以“选择”形式处理“空”的正确方法
- javascript - 如何使用 React Native 创建发光动画
- java - 如何在菜单项atctive中画一条线
- c# - Windows 中有没有一种方法可以为具有 DPI 意识的前景应用程序获取正确的矩形?
- html - 你在哪里放置页脚反应?
- c++ - 没有构造函数“RobotDriveSwerve::RobotDriveSwerve”的实例与参数列表匹配——参数类型是
- html - 在 HTML 中通过“href=tel:”使用括号
- javascript - 如果表单有效,如何验证表单(使用 javascript)并运行函数?
- python - 无法使用 SQL Alchemy 连接未知的 MySQL 服务器主机
- vue.js - VUE:使用分页时获取数据的问题