build.gradle 如何从另一个文件应用闭包

build.gradle how to apply a closure from another file

我在另一个名为 other.gradle 的 build.gradle 文件中定义了一个闭包。内容如下:

Closure callback =  {

    productFlavors {  
        ...
        devel {
            ...
        }

        prod {
            ...
        }
    }
}

现在在我的 build.gradle 文件中,我想这样调用这个闭包:

apply from: 'other.gradle'
productFlavors(callback());

但我一直收到无法找到 callback() 的错误。这两个文件都在同一个目录中。我的问题是如何获取 build.gradle 文件以查看 'other.gradle' 文件中的回调闭包。

应该按照以下方式完成:

other.gradle

project.ext.callback = { c ->
    println(c)
}

build.gradle

apply from: 'other.gradle'

callback('a')

或者在相同的情况下 callback 应该通过 project.instance 引用,例如project.callback('a').