Android 避免代码重复-如何在gradle中创建函数(并调用它们)?

Android 避免代码重复-如何在gradle中创建函数(并调用它们)?,android,function,gradle,build,call,Android,Function,Gradle,Build,Call,我在互联网上花了几分钟寻找如何创建函数并在build.gradle中调用它们,但没有成功。因为我什么也没找到,所以我不确定我是否在搜索正确的概念关键词,或者这是否可能 我有两种构建类型: release { } debug { } 我想在它们内部调用下面的snippet(),而不复制它,或者换句话说,创建一个函数: def propsFile = rootProject.file('properties') def M_PROP = "mProp"

我在互联网上花了几分钟寻找如何创建函数并在
build.gradle
中调用它们,但没有成功。因为我什么也没找到,所以我不确定我是否在搜索正确的概念关键词,或者这是否可能

我有两种
构建类型

release {

}

debug {

}
我想在它们内部调用下面的
snippet()
,而不复制它,或者换句话说,创建一个函数:

def propsFile = rootProject.file('properties')
            def M_PROP = "mProp"

            if (propsFile.exists()) {
                //Math
            }
生成如下内容:

buildTypes {
        release {
              snippet()
            }
        }

        debug {
              snippet()
        }
    }
这可能吗?我怎样才能做到这一点呢?

也许你愿意

buildTypes {
   [release, debug].each { buildType ->
      if (foo) {
          buildType.doStuff()
      }
   }
}
或许

ext.snippet = { buildType -> 
    if (foo) {
       buildType.doStuff()
    }
}
buildTypes {
    snippet(release)
    snippet(debug)
}
注意:groovy中也有这个方法

buildType.doStuff1()
buildType.doStuff2()
buildType.doStuff3()
可以写成

buildType.with {
    doStuff1()
    doStuff2()
    doStuff3()
}
这是否有助于: