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

时间:2018-01-18 11:53:32

标签: android function gradle build call

我一直在互联网上寻找如何创建功能并在build.gradle内调用它们但没有成功的几分钟。由于我什么都没发现,我不确定我是否正在寻找正确的概念 - 关键词,或者甚至是否可能。

我有两个buildTypes

release {

}

debug {

}

我想在这两个内部调用snippet()而不重复它,或者换句话说,创建一个函数:

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

            if (propsFile.exists()) {
                //Math
            }

生成如下内容:

buildTypes {
        release {
              snippet()
            }
        }

        debug {
              snippet()
        }
    }

是可能的,我怎么能这样做?

1 个答案:

答案 0 :(得分:1)

也许你想要

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()
}