Gradle为子项目添加功能(最佳实践)

时间:2016-09-01 09:44:42

标签: function gradle subproject

这是一个有多个部分的问题。

Gradle似乎有两种定义函数的方法

键入一:

def func1 = { param -> ...}

类型2

def func2 (OptionalType param){...}

我更喜欢使用Type 2,因为我不知道如何为func1定义参数的类型(问题第1部分是如何设置func类型1参数的类型),还因为它读取更好。

但我发现我可以做到

subprojects { ext.func1 = func1 }

但是

subprojects { ext.func2 = func2 }

似乎不起作用,因为我更喜欢使用函数类型2我想知道如何将它提供给子项目,我相信这一定是可能的,但我找不到合适的语法。 (问题第2部分)

我希望你们能帮帮我。

1 个答案:

答案 0 :(得分:0)

您的func1不是函数,但您定义了一个分配给变量的闭包。在Groovy(Gradle基于)中,您可以调用具有闭包的变量,就像它是一个函数一样,但实际上它不是。

所以要么使用类型1(你也可以在同一个地方def func1 = { OptionalType param -> ...}使用可选类型,但你不需要动态输入Groovy。

或者用类型2定义你的函数,然后创建一个调用类型2函数的类型1变量。