我一直在互联网上寻找有关如何创建函数并在build.gradle中调用它们而未成功的几分钟。由于我什么也没找到,所以我不确定是否要搜索正确的概念关键字,或者是否有可能。

我有两个buildTypes:

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中还有with { ... }方法,因此
buildType.doStuff1()
buildType.doStuff2()
buildType.doStuff3()

可以写成
buildType.with {
    doStuff1()
    doStuff2()
    doStuff3()
}

10-08 04:51