繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM