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

时间:2015-07-20 22:01:37

标签: android groovy closures build.gradle

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

Closure callback =  {

    productFlavors {  
        ...
        devel {
            ...
        }

        prod {
            ...
        }
    }
}

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

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

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

1 个答案:

答案 0 :(得分:1)

应该按照以下方式完成:

<强> other.gradle

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

<强>的build.gradle

apply from: 'other.gradle'

callback('a')

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