这是一个有多个部分的问题。
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部分)
我希望你们能帮帮我。
答案 0 :(得分:0)
您的func1不是函数,但您定义了一个分配给变量的闭包。在Groovy(Gradle基于)中,您可以调用具有闭包的变量,就像它是一个函数一样,但实际上它不是。
所以要么使用类型1(你也可以在同一个地方def func1 = { OptionalType param -> ...}
使用可选类型,但你不需要动态输入Groovy。
或者用类型2定义你的函数,然后创建一个调用类型2函数的类型1变量。